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.php

从我在网上看到的情况来看,这应该可以。不幸的是,它不会。有什么见解吗?

4

3 回答 3

1

如果要在 .htaccess 文件中使用它,请从模式中删除前导斜杠。并且要仅匹配完整路径段,您必须稍微更改表达式。

所以试试这个:

RewriteEngine on
RewriteRule ^(dir1|dir2|dir3)(/|$) targetfile.php [R,L]
于 2009-03-05T16:44:37.570 回答
1

我不认为正斜杠是必要的,除非您想将其限制为在“dir1”之后需要尾部斜杠。

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

于 2009-03-05T16:45:48.347 回答
0

我认为问题在于正则表达式要求在目录名称(例如/dir1/)之后使用斜杠,但在示例中最后一个斜杠被省略(http://www.somesite.com/dir1没有斜杠) .

我想你可以试试

RewriteRule ^/(dir[1-3]) /targetfile.php [R,L]
于 2009-03-05T16:49:26.980 回答