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
从我在网上看到的情况来看,这应该有效。不幸的是,它不会。有什么见解吗?
答案 0 :(得分:1)
如果要在.htaccess文件中使用它,请从模式中删除前导斜杠。要仅匹配完整路径段,您必须稍微改变表达式。
所以试试这个:
RewriteEngine on
RewriteRule ^(dir1|dir2|dir3)(/|$) targetfile.php [R,L]
答案 1 :(得分:1)
我不相信正斜杠是必要的,除非你想限制它在“dir1”之后要求尾部斜杠。
尝试: RewriteRule ^(dir1 | dir2 | dir3)$ targetfile.php [QSA,L]
答案 2 :(得分:0)
我认为问题是正则表达式要求在目录名后面加斜杠(例如/ dir1 /),但在示例中省略了最后一个斜杠(http://www.somesite.com/dir1没有斜杠)。
我认为你可以尝试使用
RewriteRule ^/(dir[1-3]) /targetfile.php [R,L]