2014-05-06 4 views
0

У меня есть структура URL, который должен быть пропущен через следующим образомMod-Rewrite Pass через

www.mysite.com/path1/path2/pageA.html - www.mysite.com/pageA.html 
www.mysite.com/path1/path2/path3/pageB.html - www.mysite.com/path3/pageB.html 

Так что мне нужно, чтобы скрыть/path1/Path2 только после того, как домен.

Я написал следующий код в файле конфигурации

RewriteRule ^/(.*)$ /path1/path2/$1 [PT, L] 

Я получаю следующее сообщение об ошибке с этим кодом

RewriteCond: bad flag delimeters 

ответ

2

Ваша ошибка происходит потому, что у вас есть пространство между PT, и L, и так как mod_rewrite не так разбирается в разборе вещей, он думает, что это два разных аргумента.

Другое дело, у вас есть шаблон URI начать с /, так как Apache 2, то URI используется, чтобы соответствовать правилам в HTAccess архивных ведущий слэш удален, так что вы не можете соответствовать ^/.

Последнее, что ваше правило может вызвать цикл перезаписи, поскольку цель правила будет соответствовать шаблону в следующей итерации. Mod_rewrite проходит все правила до тех пор, пока URI не перестанет меняться, поэтому вам может потребоваться добавить условие для предотвращения этого:

RewriteCond %{REQUEST_URI} !^/path1/path2/ 
RewriteRule ^(.*)$ /path1/path2/$1 [PT,L] 
Смежные вопросы