mod_rewrite несколько каталогов в файл php - PullRequest
1 голос
/ 05 марта 2009
RewriteEngine on
RewriteRule ^/(dir1|dir2|dir3)/(.*)$ /targetfile.php [R,L]

http://www.somesite.com/dir1 -> http://www.somesite.com/targetfile.php
http://www.somesite.com/dir2 -> http://www.somesite.com/targetfile.php
http://www.somesite.com/dir3 -> http://www.somesite.com/targetfile.php

Из того, что я видел в Интернете, это должно работать. К сожалению, это не так. Любое понимание?

Ответы [ 3 ]

1 голос
/ 05 марта 2009

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

Try: RewriteRule ^ (dir1 | dir2 | dir3) $ targetfile.php [QSA, L]

1 голос
/ 05 марта 2009

Если вы хотите использовать это в файле .htaccess, удалите начальную косую черту из шаблона. И чтобы соответствовать только полным сегментам пути, вы должны немного изменить выражение.

Так попробуйте это:

RewriteEngine on
RewriteRule ^(dir1|dir2|dir3)(/|$) targetfile.php [R,L]
0 голосов
/ 05 марта 2009

Я думаю, что проблема в том, что регулярное выражение предписывает косую черту после имени каталога (например, / dir1 /), но в примере последняя косая черта опущена (http://www.somesite.com/dir1 не имеет завершающей косой черты).

Я думаю, вы можете попробовать просто с

RewriteRule ^/(dir[1-3]) /targetfile.php [R,L]
...