Sco*_*ott 6 http https .htaccess
由于太长和太复杂的原因(它涉及几层公司繁文缛节,导致其他人没有购买我请求的通配符 SSL 证书),我必须设置一个域来将所有请求重定向到https://www .example.com – 与www子域的安全协议。
编辑:SSL 证书仅对 www.xyz.com 域有效。
所以:http://example.com、http://www.example.com和https://example.com都应该重定向到https://www.example.com。
我的 .htaccess-fu 充其量很弱,我似乎无法让它发挥作用。注意:如果这有所作为,则托管在 Media Temple 上。
到目前为止,我的 .htaccess 文件看起来像这样:
RewriteEngine On
RewriteCond %{HTTPS} !^on$
RewriteRule (.*) https://www.example.com/$1 [R,L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
无论http://example.com和http://www.example.com被重定向到https://www.example.com,所以耶。然而,https://example.com是不是重定向到https://www.example.com,并因此引发安全警告页面:
这可能不是您要找的网站!
您试图访问example.com,但实际上您访问了一个将自身标识为www.example.com的服务器。这可能是由服务器上的错误配置或更严重的事情引起的。您网络上的攻击者可能会试图让您访问example.com的虚假(并且可能有害)版本。
您不应该继续,特别是如果您以前从未见过此站点的此警告。
任何帮助我度过这最后一个难关的帮助将不胜感激!
小智 9
@ Simbus82 关于反转规则是正确的。这是一种更通用的方法。
RewriteEngine On
# ensure www.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# ensure https
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)
您需要一个对两者都有效的证书,example.com并且www.example.com如果您要将这些请求重写为www.example.com(或完成此操作的两个单独的证书)。没有办法解决这个问题。
| 归档时间: |
|
| 查看次数: |
64582 次 |
| 最近记录: |