我试图将所有请求重定向到安全的非www url。但是当我访问https://www时,我的代码无法重定向。这是唯一不工作的url,谁能帮我弄清楚为什么https://www没有按计划重定向?下面是我的代码:
<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymlinks
RewriteCond %{HTTPS} =on
RewriteRule ^ - [env=proto:https]
RewriteCond %{HTTPS} !=on
RewriteRule ^ - [env=proto:http]
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^ %{ENV:PROTO}://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
我使用飞行php为我的路由
您添加了一个条件来确保您对www的重写。仅对非ssl请求有效。
删除rewritecsecond %{HTTPS} !=on
可能存在SSL配置错误问题,因为您没有得到重定向错误。由于某些原因,错误提示"此站点无法提供安全连接"。下面让我逐一解释:
- SSL证书不是来自可信CA(自签名)。
- SSL证书已过期
- SSL配置错误也会提示这样的错误信息
- 您的计算机时间和日期不正确。
- 您可能使用了旧的/不安全的SSL证书(SHA1)。
- 使用旧的网页浏览器。
我建议你检查一下以上几点。
建议:
- 从受信任的证书颁发机构获取有效证书,其根链已经在领先的web浏览器中(即Comodo或Symantec)。
- 更新SSL证书
- 使用SSL检查工具检查您的网站。 使时间和日期完美。
- 如果您使用的是旧版本的SSL证书,请SSL提供商重新颁发证书。 让你的浏览器更新。
希望这些信息能帮助你解决问题。