2010-02-10 4 views
2

Каким это работает:мод вопрос переписывают

RewriteEngine On 

RewriteCond %{REQUEST_URI} ^/book/blabla$ 
RewriteRule ^.+$ /book/?name=blabla [NC,L] 

Но это один не делает?

RewriteEngine On 

RewriteRule ^/book/blabla$ /book/?name=blabla [NC,L] 

Я пробовал много вещей, но это меня смущает.

ответ

2

Если вы используете mod_rewrite в файле .htaccess, то contextual per-directory prefix of the URL path is removed перед тестированием правил:

Как вы увидите ниже, RewriteRule может использоваться в расчете-каталог конфигурационных файлов (.htaccess). В этом случае он будет действовать локально, удаляя префикс локального каталога перед обработкой и применяя правила перезаписи только к остатку.

Это означает, что если вы используете mod_rewrite в файле .htaccess в корневом каталоге (/), что префикс пути удаляется из URL пути. Таким образом, /book/blabla сокращен до book/blabla. Ваш шаблон правил должен отражать это поведение:

RewriteRule ^book/blabla$ /book/?name=blabla [NC,L] 
+0

Отличный ответ! – EarthMind

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