2012-01-26 4 views
2

как я могу использовать HTAccess поймать дружественный URL, какHtaccess и PHP рассекать REQUEST_URI или QUERY_STRING

/error/access/notallowed

и разбить его на

error.php?$1=$2

но реальный вопрос что, если у меня есть другой URL-адрес

/something/name/joe/address/123_Maples_Lane/city/somewhere

и делать то же самое динамически, если все нечетные сегменты являются парами ключевых значений для четных сегментов.

Мне нужен PHP для выполнения разбиений по сегментам или может htaccess создавать запрос «на лету»?

ответ

2

Apache не может создать переписывание с произвольным числом параметров, так как он должен работать с выражением PCRE. Для этого вам придется использовать PHP. Тем не менее, апач, по-прежнему участвуют:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php/$0 [PT] 

Это будет маршрут всех несуществующих запросов index.php/ и запрос будет путем. Затем вы можете разбить путь на index.php.

+0

ах это то, о чем я думал. Итак, из вашего примера в index.php я бы разделил $ _GET? или как будет выглядеть этот запрос? я бы разделил QUERY_STRING? – Eli

+0

вы разделили бы '_SERVER [REQUEST_URI]'. Если '_SERVER [PATH_INFO]' доступен, это еще лучше, но оно не всегда доступно. –

+0

спасибо, я попробую и посмотрю, что я получу. – Eli

Смежные вопросы