2009-03-05 82 views
1
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.phpmod_rewrite的多个目录的PHP文件

从我在网上看到,这应该工作。不幸的是,它不会。任何见解?

回答

1

如果您想在.htaccess文件中使用此功能,请从模式中删除前导斜杠。而只匹配完整的路径段,你必须稍微改变表达式。

那么试试这个:

RewriteEngine on 
RewriteRule ^(dir1|dir2|dir3)(/|$) targetfile.php [R,L] 
1

我不相信正斜杠是必要的,除非你要它限制对需要后尾随斜杠“DIR1。”

尝试: 重写规则^(DIR1 | DIR2 | DIR3)$ targetfile.php [QSA,L]

0

我认为问题是,正则表达式授权该目录名称后斜杠(例如/ DIR1/),但在该示例中,省略了最后一个斜杠(http://www.somesite.com/dir1没有尾部斜线)。

我想你可以尝试只是

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