2012-04-02 2 views
0

Я пользователь хочет посетить www.domain.com/item/ABC123Как принимать входной параметр PHP из URL, как этот www.domain.com/item/ABC123


Как вы можете видеть здесь ABC123 должен быть установлен входной параметр

как это www.domain.com/item/?Id=ABC123

Под/элемент/есть файл index.php, который будет принимать входной параметр Id, как я передать входное значение параметра с сайта www.domain.com/item/ABC123 в входной параметр id файла index.php?

+1

возможно дубликат (http://stackoverflow.com/questions/122097/apache-mod-rewrite-primers) и, возможно, 100 [Apache Mod-переписать Праймеры?] больше потоков на mod_rewrite. – j08691

+1

Возможный дубликат [Как использовать mod_rewrite для изменения пути и имени файла URL-адреса] (http://stackoverflow.com/questions/105308/how-do-i-use-mod-rewrite-to-change-the -path-and-filename-of-a-url) – outis

ответ

1

использованием .htaccess файл

добавить правила перезаписи:

RewriteRule ^/item/([a-zA-Z0-9-]*)$ /item/index.php?id=$1 [QSA,L,E] 
0

Вам нужно перезаписи URL. В базовом режиме у вас будет .htaccess с правилом перезаписи, которое преобразует ваш URL. Например, www.domain.com/item/some/things/ABC123 в www.domain.com/item/index.php?queryString=some/things/ABC123, и ваш PHP сделает все остальное.

0

Нечто похожее на это должно работать:

.htaccess

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php 

index.php

$uri = preg_replace("#(/+)#","/",$_SERVER["REQUEST_URI"]); 
$uri = array_shift(explode("/",$uri)); 

теперь $uri представляет собой массив из каждой части URI. так/а/б/с становится:

array(
    0 => "a", 
    1 => "b", 
    2 => "c", 
) 
+0

Обратите внимание, что это общее решение с непроверенным кодом, обеспечивающим быструю и безболезненную маршрутизацию uri в приложении PHP. – Navarr