%h 25附加在htaccess重定向的Url中

时间:2016-12-28 05:10:29

标签: apache .htaccess http mod-rewrite https

我尝试将所有非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,如上面的代码所示,但它不起作用。

谢谢。

1 个答案:

答案 0 :(得分:2)

使用此规则更改规则:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [NE,R=301,L]
  • NE标志阻止编码特殊字符。
  • %{REQUEST_URI}使用与当前目录无关的原始URI。

确保在测试更改之前清除浏览器缓存。