gpt4 book ai didi

.htaccess - 仅使用 .htaccess 在某些页面上将 http 重写为 https

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

我知道有很多关于我的问题的话题。我检查了它们并尝试了它们但无法使其工作。我只需要在某些页面上将 http 重写为 https。访问 https 页面后,URL 将返回到 http。这是我目前所拥有的:


# Rewrite Rules for domain.com
RewriteEngine On
RewriteBase /

#Rewrite www to domain.com
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

#Rewrite to https
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /secure.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

#traffic to http://, except secure.php
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /secure.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

当我跳过最后一组规则(到 http://的流量,secure.php 除外)时,secure.php 页面加载为 https 并被加密。美好的。使用最后一组规则(到 http://的流量,secure.php 除外),URL 重写为 https,变成蓝色 (SSL) 一秒钟然后消失(无 SSL),但 URL 仍然是 https。

有什么想法吗?亚采克

最佳答案

第三组规则有误。这是解决方案:使用第三组规则:如果 https 处于“打开”状态,那么如果 URL 不包含“/secure”,则重定向到 http。

# Rewrite Rules for domain.com
RewriteEngine On
RewriteBase /

#Rewrite www to domain.com
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

#Rewrite to https
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /secure.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

#traffic to http://, except secure.php
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !(/secure.php)
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L]

题外话建议:请寻找 Yahoo Slow 及其关于网站优化的非常聪明的建议,您会明白为什么前面有“www”总是更好。您最好对您的 #1 重写规则执行相反的操作:如果没有“www”,则添加它。


请尝试使用RewriteLog 指令:它可以帮助您追踪此类问题:

# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On

告诉我它是否有效。

关于.htaccess - 仅使用 .htaccess 在某些页面上将 http 重写为 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2357455/

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