.htaccess - 将某些页面的 https 重定向到 http

标签 .htaccess redirect ssl

除了登录和注册页面,我想将 https 请求重定向到 http。

所以 https://example.com 会重定向到 http://example.com 但 example.com/user/login 应该总是重定向到 https://example.com/user/login .

如何在我的 .htaccess 文件中执行此操作?

最佳答案

您可以使用 mod_rewrite 中的 %{HTTPS} 变量检测当前请求是否使用 https。这是 onoff。请注意,您想要的重定向不会有帖子请求的预期行为,因为重定向的 url 将始终使用没有帖子正文的 get 来请求。

RewriteEngine on

RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^/user/(login|register)$
RewriteRule ^(.*)$ http://example.com/$1 [R,L]

RewriteCond %{HTTPS} =off
RewriteRule ^user/(login|register)$ https://example.com/user/$1 [R,L]

在测试重定向按预期工作后,将 R 标志更改为 R=301

关于.htaccess - 将某些页面的 https 重定向到 http,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26562679/

相关文章:

wordpress - 从 RewriteRule 中排除文件夹/目录

javascript - AJAX 和 PHP - 满足某些条件后需要重定向 PHP 页面

ruby-on-rails - 如何使用停用 Webrick 的 SSL

Bash隐藏 "killed"

javascript - jquery查找并替换iframe src

java - 如何向LiClipse添加证书以允许通过SSL访问git repo?

ssl - Nginx 不提供中间证书

Apache Web 服务器不允许我刷新 on/about,但在 localhost 上它工作正常

javascript - 为什么 window.location 追加而不是替换 ie 中的 URL

.htaccess 文件在 Ubuntu 服务器上被忽略