13

这是我现在拥有的脚本,我如何让我的脚本强制所有流量到 http,目前它正在做完全相反的事情,它强制所有流量到 https。

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

我也试过这个,它没有用

RewriteEngine On
RewriteCond %{HTTP} !=on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

我收到了这个错误:

尝试打开 www.blankpage.com 时发生了太多重定向。

4

2 回答 2

38

您要检查 HTTPS 是否打开

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

如果它在 ( %{HTTPS} on) 上,则重定向到http://。没有调用 mod_rewrite 变量%{HTTP},只有%{HTTPS}它可以是“on”或“off”。

您收到太多重定向错误的原因是:

RewriteCond %{HTTP} !=on

无论请求是 http 还是 https,始终为 true,因为该变量不存在,所以它永远不会等于“on”。因此,即使请求是 http,您也会不断被重定向到相同的 URL (http)。

于 2013-10-07T17:22:33.690 回答
0

在 processwire htaccess 中查找这些行

#------------------------------------------------ -------------------------------------------------- ------------------------------------------

如果您只想允许 HTTPS,请取消注释下面的 RewriteCond 和 RewriteRule 行

#------------------------------------------------ -------------------------------------------------- ------------------------------------------

   RewriteCond %{HTTPS} off
   RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

#------------------------------------------------ -------------------------------------------------- ------------------------------------------

如果您只想允许 HTTP 使用下面的代码

#------------------------------------------------ -------------------------------------------------- ------------------------------------------

RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L]
于 2020-01-02T08:26:19.753 回答