这将改变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]