使用.htaccess重定向http://,http://www.,及https://www. 至https://
看起来这个问题的各种排列方式以前都被问过,但看起来所有的答案都有特定的特质,不适用于我的情况,或者根本不起作用 所以,这就是我想要的 我想要这三个URL: 。。。要全部重定向到: 从另一个答案来看,我试过这个使用.htaccess重定向http://,http://www.,及https://www. 至https://,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,看起来这个问题的各种排列方式以前都被问过,但看起来所有的答案都有特定的特质,不适用于我的情况,或者根本不起作用 所以,这就是我想要的 我想要这三个URL: 。。。要全部重定向到: 从另一个答案来看,我试过这个 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ https:/
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
重新启动发动机
重写基/
重写cond%{HTTP_HOST}^www\.(.+)$[NC]
重写规则^https://%1%{REQUEST_URI}[R=301,L]
重写条件%{HTTPS}关闭
重写规则^https://%{HTTP_HOST}%{REQUEST_URI}[R=301,L]
但是,这并没有从重定向到
因此,结果是一个证书警告(因为我的证书仅对example.com有效,而对www.example.com无效)
我也试过这个
重新启动发动机
重写cond%{HTTPS}=在…上
重写规则^(.*)$https://%{HTTP_HOST}/$1[R=301,L]
重新启动发动机
重写cond%{HTTPS}=在…上
重写cond%{HTTP_HOST}^www\.(.+)$[NC]
重写规则^%{ENV:PROTO}://%1%{REQUEST_URI}[R=301,L]
。。。但这也不起作用:
- 被重定向到
- 没有重定向
位置
头之前,第一个HTTPS层应该工作(并纠正证书问题)
为此,您需要一个对example.com
和www.example.com
都有效的“通配符证书”,或者为上述主机提供两个不同的证书,其中一个只为提供重定向而付费
这很难接受,但这就是它的工作原理
如果CAs最终接受www.domain
和domain
应该附带一个单一的证书(虽然有点贵,但不超过两倍或更贵),那就太好了。你不能这样做
HTTPS是一个外部包装(顾名思义,是传输层)。在服务器获取请求头、确定HTTP 1.1主机并发送位置
头之前,第一个HTTPS层应该工作(并纠正证书问题)
为此,您需要一个对example.com
和www.example.com
都有效的“通配符证书”,或者为上述主机提供两个不同的证书,其中一个只为提供重定向而付费
这很难接受,但这就是它的工作原理
如果CAs最终接受www.domain
和domain
应该附带一个单一的证书(如果有点贵,但不是两次或更贵的话),那就太好了。试试:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
这将使用或
条件标志,以便在不是https或主机以“www”开头时发生重定向
还有一点值得注意:
因为我的证书仅对example.com有效,而对www.example.com无效
SSL握手发生在发送HTTP请求之前。这意味着当您请求https://www.example.com/
,浏览器将看到证书并立即将其标记为安全异常。除购买新证书外,您无能为力。试试:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
这将使用或
条件标志,以便在不是https或主机以“www”开头时发生重定向
还有一点值得注意:
因为我的证书仅对example.com有效,而对www.example.com无效
SSL握手发生在发送HTTP请求之前。这意味着当您请求https://www.example.com/
,浏览器将看到证书并立即将其标记为安全异常。除了买一张新的证书,你什么也做不了