以下是为我工作(删除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]
显然不对(这第二部分根本不需要) - 然后我明白我需要在第一部分的网址中删除点(句点),但也要使它更具体,现在它不需要匹配www .hotels.site.com - 在这种情况下我仍然想要删除www,但我想重定向到子域。所以简而言之,我总是希望删除www并保持子域工作。
RewriteCond %{HTTP_HOST} !^www\.site\.com$ [NC]
所以这最后一行非常具体,只能与www.site.com匹配
那为什么不呢?
答案 0 :(得分:0)
^www\.site\.com$
只能完全匹配www.site.com
。
^hotels$
只能完全匹配hotels
- 或许您的意思是^hotels
,它与以hotels
开头的任何内容相匹配。
我发现您的要求难以理解,但如果您只想删除www
,则可以使用
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule ^.*$ http://%1/$0 [R,L]