强制URL为http而不是https

时间:2017-01-08 21:32:13

标签: php wordpress .htaccess web-config

我正在运行WordPress / WooCommerce网站。大多数URL都没有SSL / https的问题,现在有一个插件,我发现它导致HTTPS出现问题所以我希望这个插件的URL是HTTP而不是HTTPS。

网址如下所示:

https://www.example.com/ontwerp-zelf/?product_id=1432&cart_id=d866d4bd644dd570146434238434f345

我想重写它,以便当它在字符串中找到ontwerp-zelf时,它会自动重写为HTTP。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

要从包含字符串“ontwerp-zelf”的URL(从一开始)将HTTPS重定向回HTTP,请尝试以下操作(在现有WP指令之前,但现有规范重定向之后) :

RewriteCond %{HTTPS} on
RewriteRule ^(ontwerp-zelf.*) http://%{HTTP_HOST}/$1 [R=302,L]

请注意.htaccess中指令的顺序非常重要。

这是目前的302(临时)重定向。当您确定它正常工作时,将其更改为301(永久)。 301s被浏览器缓存,因此可能会使测试出现问题。

但是,您还需要排除这些网址在现有规范HTTP中重定向到HTTPS重定向,否则您将最终获得重定向循环。所以,如果你现在有类似的东西:

RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

然后,您需要插入一个附加条件,以防止它首先被重定向到HTTPS。

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/ontwerp-zelf
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

CondPattern !^/ontwerp-zelf声明REQUEST_URI不得以/ontwerp-zelf开头。