Mod-Rewrite通过

时间:2014-05-06 00:04:13

标签: .htaccess mod-rewrite url-rewriting

我有一个必须通过以下

传递的URL结构
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

1 个答案:

答案 0 :(得分:2)

您的错误是因为PT,L之间有空格,因为mod_rewrite对于解析事物并不那么聪明,所以它认为这是两个不同的参数。

另一件事是您的URI模式以/开头,因为apache 2,用于匹配htaccess文件中的规则的URI删除了前导斜杠,因此您无法匹配{{1} }。

最后一点是你的规则可能导致重写循环,因为规则的目标将匹配下一次迭代中的模式。 Mod_rewrite循环遍历所有规则,直到URI停止更改,因此您可能需要添加条件以防止这种情况发生:

^/