我遇到了问题,但有许多子域:例如......
sub1.domain.com和new.domain.com以及xsub.domain.com以及更多这样的人。
如何使用一个通用规则从前面删除www。
E.g。如果有人键入www..domain.com或http://www .. domain.com将其更改为
的http://.domain.com
由于
答案 0 :(得分:0)
您可以使用重写模块删除www。当它在子域之前。通过这种方式,像www.sub1.domain.com这样的地址将被重定向到sub1.domain.com:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]
</IfModule>
答案 1 :(得分:0)
修改过的测试解决方案,但仅适用于http。
#Allow domain of the form www.domain.com
RewriteCond %{HTTP_HOST} !^www\.([^\..]*)\.([^\..]*)$ [NC]
#Otherwise any other form must be rewritten to remove www
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
#Substitue the complete domain using group %1 in the parentheses of the above condition
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]
答案 2 :(得分:0)
这将完成工作,并使用http://
返回RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^(.*) http://%1/$1 [R,L]
对于https,只需添加s,如下:
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^(.*) https://%1/$1 [R,L]
请注意,这也可以在httpd.conf中完成。使用.htaccess很流行,但实际上会降低网站速度,特别是如果有嵌套目录的话。
你确实需要:
Options +FollowSymLinks
但你不需要索引。