0

以下内容对我有用(删除 www),但我注意到开始弄乱子域,因为它不够具体

RewriteCond %{HTTP_HOST} !^site.com$ [NC]
RewriteRule ^(.*)$ http://site.com/$1 [R,L]

所以我加了

    RewriteCond %{HTTP_HOST} !^hotels$ [NC]
    RewriteRule ^(.*)$ http://hotels.site.com/$1 [R,L]

显然不正确(根本不需要第二部分) - 然后我明白我需要在第一部分中转义 url 中的点(句点),但现在也让它更具体,它不需要匹配 www.hotels。 site.com - 在这种情况下,我仍然想删除 www,但我想重定向到子域。所以简而言之,我总是想删除 www 并保持子域正常工作。

RewriteCond %{HTTP_HOST} !^www\.site\.com$ [NC]

所以最后一行非常具体,应该只匹配 www.site.com

那为什么不呢?

4

1 回答 1

0

^www\.site\.com$只会完全匹配www.site.com

^hotels$只会完全匹配hotels- 也许您的意思是^hotelswhich 匹配以 . 开头的任何内容hotels

我发现您的要求难以理解,但如果您只想删除www您可以使用

RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule ^.*$ http://%1/$0 [R,L]
于 2013-03-03T16:33:37.743 回答