Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache:将所有请求重定向到https://www.domain.tld_Http_Web_Https_Url Redirection_No Www - Fatal编程技术网

Apache:将所有请求重定向到https://www.domain.tld

Apache:将所有请求重定向到https://www.domain.tld,http,web,https,url-redirection,no-www,Http,Web,Https,Url Redirection,No Www,我找不到有效的解决办法 这里是我的设置: # Redirect non-www to www RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] # Redirect http to https RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^ https://%{HTTP_HOST}%{REQUEST

我找不到有效的解决办法

这里是我的设置:

# Redirect non-www to www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

# Redirect http to https
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
每个部件都工作得很好,但不在一起。 https重定向的部分总是重定向到so而不使用www,它被忽略。 有人知道解决办法吗


提前感谢。

强制
HTTPS
并包括
WWW

RewriteEngine On
RewriteCond %{HTTP_HOST}#%{HTTPS}s !^www\.([^#]+)#(?:off|on(s)) [NC]
RewriteRule ^$ http%2://www.%1%{REQUEST_URI} [R=301,L]
应该一次完成这两项工作,否则您可以将规则分开,并且可能会这样做:

# Rewrite to WWW
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*) https://www.%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

# Rewrite HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
如果重写对
非www
www
不起作用,那么服务器上可能设置了VirtualHost 301重定向到其他地方(可能在
httpd.conf
)。。。它看起来与此类似:

httpd.conf

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
    RewriteRule ^(.*)$ https://example.com$1 [L,R=301]
</IfModule>

重新启动发动机
RewriteCond%{HTTP_HOST}^www\.example\.com$[NC]
重写规则^(.*)$https://example.com$1[L,R=301]

如果在
httpd.conf
中设置,它可以覆盖
非www
htaccess
中对
www
的重写,强制
HTTPS
,并包括
www

RewriteEngine On
RewriteCond %{HTTP_HOST}#%{HTTPS}s !^www\.([^#]+)#(?:off|on(s)) [NC]
RewriteRule ^$ http%2://www.%1%{REQUEST_URI} [R=301,L]
应该一次完成这两项工作,否则您可以将规则分开,并且可能会这样做:

# Rewrite to WWW
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*) https://www.%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

# Rewrite HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
如果重写对
非www
www
不起作用,那么服务器上可能设置了VirtualHost 301重定向到其他地方(可能在
httpd.conf
)。。。它看起来与此类似:

httpd.conf

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
    RewriteRule ^(.*)$ https://example.com$1 [L,R=301]
</IfModule>

重新启动发动机
RewriteCond%{HTTP_HOST}^www\.example\.com$[NC]
重写规则^(.*)$https://example.com$1[L,R=301]

如果在
httpd.conf
中设置了该选项,则它可以覆盖
非www
www
访问
中的重写,“不工作”无法解释任何内容。。。行为是什么?
http://domain.tld https://domain.tld 及https://www.domain.tld 重定向到http://www./
http://www.domain.tld ->404页面未找到
重写循环,仅https部分->错误太多\u重定向,仅www部分->重写循环我的主机似乎有问题,只有在没有www的情况下才有可能。让我们看看支持会说些什么。非常感谢你的帮助,我再次编辑了答案;它可能不会重定向到
www
,但如果您在其他地方(比如虚拟主机设置中)有301重定向,则“不工作”无法解释任何问题。。。行为是什么?
http://domain.tld https://domain.tld 及https://www.domain.tld 重定向到http://www./
http://www.domain.tld ->404页面未找到
重写循环,仅https部分->错误太多\u重定向,仅www部分->重写循环我的主机似乎有问题,只有在没有www的情况下才有可能。让我们看看支持会说些什么。非常感谢你的帮助,我再次编辑了答案;它可能不会重定向到
www
,但如果您在其他地方有301重定向(比如在虚拟主机设置中)。。。