301 将根目录和仅根目录(“/”)从 https 重定向到 http

301 将根目录和仅根目录(“/”)从 https 重定向到 http

我找到了几个关于如何仅重定向 root、如何从 重定向httpshttp(使用.htaccess) 的问答。但没有一个问题将两者合并在一起。而且这个答案太肮脏了:https://stackoverflow.com/questions/17952418/force-web-root-to-use-http。所以我想到了如下的答案:

RewriteEngine on
RewriteCond %{HTTP_HOST} provectium\.com [NC]
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

这是有效的吗?我希望它能够让任何查询https://provectium.com/file.html将被重定向至http://provectium.com/file.html,但不包括子文件夹(它们应该保留https://provectium.com/directory/)。 谢谢。

PS 我在某处读到第二行可能是RewriteCond %{HTTP_HOST} ^provectium\.com [NC],额外的作用是什么^

答案1

这应该适用于 / (根)和 / 下的所有页面,但不适用于任何子文件夹。

RewriteEngine on
RewriteCond %{HTTP_HOST} provectium\.com [NC]
RewriteCond %{HTTPS} on
RewriteRule ^([^/]+)?$ http://%{HTTP_HOST}/$1 [R=301,L]

如果你输入^第二行,则仅当主机完全匹配时,规则才会匹配provectium.com,并且不会匹配www.provectium.com

相关内容