这将改变domain.com到www.domain.com:
# Force the "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
如何替换“域”部分,以便它可在任何域上使用?
这将改变domain.com到www.domain.com:
# Force the "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
如何替换“域”部分,以便它可在任何域上使用?
Answers:
我会使用以下规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
第一个条件检查Host值是否不为空(对于HTTP / 1.0);第二个检查主机值是否不以开头www.; HTTPS的第三检查(%{HTTPS}或者是on或off,因此%{HTTPS}s是任一ons或offs和在的情况下,ons该s被匹配)。然后,替换部分RewriteRule仅将信息部分合并到完整的URL。
RewriteEngine On为第一行来完成它,因为如果原样复制粘贴,这可能会导致500服务器错误。
这样做:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
如果要将站点上所有非www的请求重定向到www版本,只需将以下代码添加到.htaccess文件中:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
这不适用于子域。
domain.com正确地重定向到www.domain.com
但
images.domain.com重定向到www.images.domain.com
而不是检查子域是否不是“ www”,而要检查是否有两个点:
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ HTTP%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\.(.*)\. [NC]严格来说,您的TLD仍然是,.uk而您的域名是something.co。)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
这将重定向example.com到www.example.com排除子域。
这是一个比较老的问题,并且有很多不同的方法可以做到这一点。最完整的答案,恕我直言,可以在这里找到:https : //gist.github.com/vielhuber/f2c6bdd1ed9024023fe4。(在这里粘贴和格式化代码对我不起作用)
这对我来说就像魔术一样
RewriteCond%{HTTP_HOST} ^ sitename.com [NC] RewriteRule ^(。*)$ https://www.sitename.com/ $ 1 [L,R = 301,NC]
RewriteCond %{HTTP_HOST} ^yourdomain.com [NC]