Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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 将所有HTTP请求(非www&www,子域)重定向到HTTPS_Apache_.htaccess_Redirect_Ssl - Fatal编程技术网

Apache 将所有HTTP请求(非www&www,子域)重定向到HTTPS

Apache 将所有HTTP请求(非www&www,子域)重定向到HTTPS,apache,.htaccess,redirect,ssl,Apache,.htaccess,Redirect,Ssl,我希望能够将所有访问者重定向到网站及其子域,如以下所示: -> -> -> -> -> 其他重定向: w或ww、wwww等。example.com-> w或ww、wwww等。sub.example.com-> 重定向应该是可缓存的HTTP 301重定向。使用的配置是Apache 2.4.10+mod spdy,具有严格的传输安全性和通配符SSL证书 当前在.htaccess中使用以下内容: RewriteCond %{SERVER_PORT} !^443 RewriteCond %{H

我希望能够将所有访问者重定向到网站及其子域,如以下所示:

-> -> -> -> -> 其他重定向:

w或ww、wwww等。example.com-> w或ww、wwww等。sub.example.com-> 重定向应该是可缓存的HTTP 301重定向。使用的配置是Apache 2.4.10+mod spdy,具有严格的传输安全性和通配符SSL证书

当前在.htaccess中使用以下内容:

RewriteCond %{SERVER_PORT} !^443
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^ "https://www.example.com%{REQUEST_URI}" [R=301,L]

RewriteCond %{SERVER_PORT} !^443
RewriteCond %{HTTP_HOST} ^sub\.example\.com$
RewriteRule ^ "https://sub.example.com%{REQUEST_URI}" [R=301,L]
我一直在使用spdycheck.org来测试这一点,它在主域中运行良好,在子域中我得到以下消息:

允许HTTP通信量

此网站仍然可以通过HTTP访问。超文本传输协议 没有提供任何广泛实施的机制来使用其他 像SPDY这样的协议。仅使用NPN扩展的SSL/TLS上的流量 可以使用SPDY进行优化。通过允许HTTP流量,此网站 甚至没有为支持SPDY的浏览器提供使用SPDY的选择。如果 如果可能,此网站应将所有http://重定向到https://, 理想情况下使用可缓存的HTTP 301重定向


实现这一目标的好方法是什么?如果需要,我也可以修改httpd.conf。

如果您在httpd.conf中执行此操作,请输入以下内容:

<VirtualHost _default_:80>
  RewriteEngine On
  RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NE,L,R=301]
</VirtualHost>

在所有虚拟主机之后,请确保其他虚拟主机仅为端口443。这将使其重定向到全局http vhost,该全局http vhost将分别将每个页面重定向到HTTPS并提供301重定向。

我只希望web服务器上的一个虚拟主机使用其顶级.htaccess在SSL上提供服务,例如sub1.mysite.com。我该怎么做?