这会将domain.example更改为www.domain.example:
domain.example
www.domain.example
# Force the "www." RewriteCond %{HTTP_HOST} !^www\.domain\.example$ [NC] RewriteRule ^(.*)$ `http://www.domain.example/$1` [R=301,L]
如何替换“域”部分,使其适用于 * 任何 * 域?
o4tp2gmn1#
我会使用以下规则:
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的情况下);第二个检查 Host 值是否不以www.开始;第三个检查HTTPS(%{HTTPS}是on或off,因此%{HTTPS}s是ons或offs,并且在ons的情况下,s被匹配)。
www.
%{HTTPS}
on
off
%{HTTPS}s
ons
offs
s
nfg76nw02#
这样就可以了:
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
v64noz0r3#
如果要将所有对站点的非www请求重定向到www版本,只需将以下代码添加到.htaccess文件中:
iaqfqrcu4#
这不适用于子域。domain.example正确重定向到www.domain.example但是,images.domain.example被重定向到www.images.domain.example不要检查子域是否“不是www”,而是检查是否有两个点:
images.domain.example
www.images.domain.example
RewriteCond %{HTTP_HOST} ^(.*)$ [NC] RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\. [NC] RewriteCond %{HTTPS}s ^on(s)| RewriteRule ^ HTTP%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
dfuffjeb5#
下面的语句应该为没有前缀的请求添加前缀“www”,并将编辑后的请求重定向到新的URI。
RewriteCond "%{HTTP_HOST}" "!^www\." [NC] RewriteCond "%{HTTP_HOST}" "(.*)" RewriteRule "(.*)" "http://www.%1$1" [R=301,L]
fhity93d6#
RewriteEngine On RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
这会将example.com重定向到www.example.com(不包括子域)。
example.com
www.example.com
ki1q1bka7#
这是一个比较古老的问题,有很多不同的方法可以解决这个问题。恕我直言,最完整的答案可以在这里找到:https://gist.github.com/vielhuber/f2c6bdd1ed9024023fe4。(粘贴和格式化此处的代码不起作用)
o8x7eapl8#
这对我来说就像魔术一样
RewriteCond %{HTTP_HOST} ^sitename.example [NC] RewriteRule ^(.*)$ https://www.sitename.example/$1 [L,R=301,NC]
8条答案
按热度按时间o4tp2gmn1#
我会使用以下规则:
第一个条件检查 Host 值是否不为空(在HTTP/1.0的情况下);第二个检查 Host 值是否不以
www.
开始;第三个检查HTTPS(%{HTTPS}
是on
或off
,因此%{HTTPS}s
是ons
或offs
,并且在ons
的情况下,s
被匹配)。nfg76nw02#
这样就可以了:
v64noz0r3#
如果要将所有对站点的非www请求重定向到www版本,只需将以下代码添加到.htaccess文件中:
iaqfqrcu4#
这不适用于子域。
domain.example
正确重定向到www.domain.example
但是,
images.domain.example
被重定向到www.images.domain.example
不要检查子域是否“不是www”,而是检查是否有两个点:
dfuffjeb5#
下面的语句应该为没有前缀的请求添加前缀“www”,并将编辑后的请求重定向到新的URI。
fhity93d6#
这会将
example.com
重定向到www.example.com
(不包括子域)。ki1q1bka7#
这是一个比较古老的问题,有很多不同的方法可以解决这个问题。恕我直言,最完整的答案可以在这里找到:https://gist.github.com/vielhuber/f2c6bdd1ed9024023fe4。(粘贴和格式化此处的代码不起作用)
o8x7eapl8#
这对我来说就像魔术一样