【发布时间】:2016-07-11 08:12:48
【问题描述】:
我有一个带有 Wordpress 的网站。我需要一些单页来重定向 HTTPS
我从 stackoverflow 获取代码并放入 .htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} /online-order-auto [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} !/online-order-auto [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
RewriteCond %{HTTP_HOST} ^(www\.)?site\.com\.swtest\.ru$
RewriteRule ^(.*)$ http://www.site.ru/$1 [L,R=301]
浏览器写了“ERR_TOO_MANY_REDIRECTS”。 我不明白有什么问题
【问题讨论】:
-
这段代码将http重定向到https,将https重定向到http,所以你有无限循环
-
^(www\.)?site\.com\.swtest\.ru$应该是什么?您当然不希望在规范重定向中使www可选,这将创建一个重定向循环。 (虽然主机在当前状态下被捣碎,所以永远不会匹配。)毕竟这也是你的 WP 东西,所以无论如何都不会被看到。 -
我删除了它,但重定向仍然在这里。我只需要在 /online-order-auto/ 中重定向到 https 当我单击此页面中的任何链接时,我需要返回 http
-
@user2896218 请注意,仅将某些 url 重定向到 https 是不安全的。对中间人的唯一保护是完整网站上的 https + HSTS
-
“我删除了它,但重定向仍然在这里。” - 确保您已清除浏览器缓存。 301重定向会被浏览器缓存。
标签: wordpress .htaccess redirect https