使用htaccess跳过目录

时间:2012-03-19 21:01:37

标签: .htaccess mod-rewrite

RewriteCond %{HTTP_HOST} ^(www.)?example\.com$ [NC]
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

所以我在我的htaccess文件中有这个来处理尾随斜杠问题。每次在URL上添加尾部斜杠时,它都会重定向您。

这里的问题是,有一个目录,它需要尾随斜杠或它中断。如何为此规则添加http://www.example.com/com/等目录的例外..

1 个答案:

答案 0 :(得分:0)

最简单易懂的方法是使用附加条件:

RewriteCond $1           !=com
RewriteCond %{HTTP_HOST} ^(www.)?example\.com$ [NC]
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

这是有效的,因为执行顺序是rule.regexp,cond1,cond2,rule.substitution。因此,$ 1变量可用于(新)cond1。您还可以在正则表达式上使用否定断言。

顺便说一下,在http的[R = 301]的情况下假设http://%{HTTP_HOST}/。为什么您不想删除/其他主机别名?

相关问题