.htaccess:仅在没有子目录时重写

时间:2010-12-23 19:38:41

标签: apache .htaccess redirect subdomain rewrite

遵守这条规则:

RewriteCond %{HTTP_HOST} !^www\.domain\.com 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]

您可以将网站中的每个网址重定向到网址以及开头的子域www.

我遇到的问题是它给了我其他子域的一些问题,即我不希望blog.domain.com也重定向到我。

那么有没有办法做一个通用规则来避免重定向任何已经有子域的东西?

提前致谢!!


我希望这个问题足够清楚!!我需要任何澄清请求!

2 个答案:

答案 0 :(得分:1)

是的 - RewriteCond的正则表达式匹配“任何不是www.domain.com”的东西。如果我理解正确,您只想匹配domain.com。

像这样:

RewriteCond %{HTTP_HOST} ^domain\.com$ 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]

现在如果有人使用domain.com,他们将被重定向。对于具有其他而不是domain.com的请求,它们不会被重定向。这包括www.domain.com以及blog.domain.com以及dns2.domain.com。

答案 1 :(得分:0)

感谢haha带领我朝着正确的方向前进。

我设法通过cPanel,我重定向所有非www。用www。带有通配符的子域。

抱歉,不知道有可能做到这一点。

感谢您的所有答案和评论!!