我尝试将所有非https网址重定向到http,所以我在.htaccess中使用此功能
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [B,R,L]
但是当我从网址中删除https进行测试时,它会重定向到https,但会转到https://example.com/%25myfile.php
在网址中添加%25
并使链接未找到。我在上面犯了一些错误吗?我跟着Apache: %25 in url (400 Bad Request)并添加了标志B,如上面的代码所示,但它不起作用。
谢谢。
答案 0 :(得分:2)
使用此规则更改规则:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [NE,R=301,L]
NE
标志阻止编码特殊字符。%{REQUEST_URI}
使用与当前目录无关的原始URI。确保在测试更改之前清除浏览器缓存。