gpt4 book ai didi

.htaccess 仅在某些页面上设置 SSL 重定向时无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-03 14:16:16 25 4
gpt4 key购买 nike

在寻找上述问题的答案时,我遇到了这个脚本作为解决方案(我希望我的网站在 http 上,但登录、注册、管理等少数页面除外):

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

# force https for /login.php and /register.php
RewriteCond %{HTTPS} =off
RewriteRule ^(login|register)\.php$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# don't do anything for images/css/js (leave protocol as is)
RewriteRule \.(gif|jpe?g|png|css|js)$ - [NC,L]

# force http for all other URLs
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^/(login|register)\.php$
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

这个确切的例子应该在我的服务器上工作,但它只能部分工作,也就是说,它将所有页面重定向到 http,但我无法打开 login.php 或 register.php。网络浏览器指出这些页面包含重定向循环,因此无法显示。绝不是我不是 mode_rewrite 或 htaccess 方面的专家,因此我将不胜感激任何帮助。

编辑:我遵循了建议并使用 chrome 插件运行 mywebsite。我发现在页面 login.php 中有重定向循环 http->https->http 等(该页面上唯一的其他重定向是当用户已经签名时,但它似乎不是这个循环的原因) .我也尝试了不同的代码来设置 SSL,这个有效:

# Rewrite Rules for example.com
RewriteEngine On
RewriteBase /

# Turn SSL on for payments
RewriteCond %{HTTPS} off
RewriteCond %{SCRIPT_FILENAME} \/login\.php [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Turn SSL off everything but payments
RewriteCond %{HTTPS} on
RewriteCond %{SCRIPT_FILENAME} !\/login\.php [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

这个工作正常,但它只有一个 https 异常(exception),我希望有更多(大约 6 个)。有人知道为什么第一个脚本不起作用吗?或者如何修改第二个以拥有更多 https 网站?

谢谢

最佳答案

我遇到了类似的问题,这对我有用。

在你的 httpd.conf 中,在虚拟主机下,确保你有:

ServerName domain.com

ServerAlias www.domain.com

VirtualHost *:80 和 VirtualHost *:443

关于.htaccess 仅在某些页面上设置 SSL 重定向时无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19660728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com