使用 .htaccess 控制某些页面上的 HTTPS

Posted

技术标签:

【中文标题】使用 .htaccess 控制某些页面上的 HTTPS【英文标题】:Using .htaccess to control HTTPS on certain pages 【发布时间】:2010-11-15 20:26:08 【问题描述】:

我有一个需要(显然)HTTPS 才能结帐的网站。当前实施的修复涉及使整个站点在 SSL 模式下运行,但这会导致问题。

我该如何改变这个...

RewriteCond %HTTPS off
RewriteRule (.*) https://%HTTP_HOST%REQUEST_URI [L]

仅将某个 URL(比如 basket.php)设置为 HTTPS?

【问题讨论】:

【参考方案1】:

更短的版本:

RewriteCond %HTTPS off
RewriteRule ^basket\.php$ https://%HTTP_HOST%REQUEST_URI [L]

【讨论】:

如何修改它以接受多个页面?说购物篮和结帐等等? 将模式 ^basket\.php$ 更改为您想要的任何内容。如果您需要正则表达式方面的帮助,请查看Apache’s mod_rewrite Introduction。 “在本文档中,我们尝试提供足够多的正则表达式词汇表来帮助您入门,但不会让人不知所措,希望 RewriteRules 将成为科学公式,而不是魔法咒语。” - 嘿,那是我的发球台 - 不再是了,谢谢。【参考方案2】:

我相信这会奏效:

RewriteCond %HTTPS off
RewriteCond %REQUEST_URI /basket.php
RewriteRule (.*) https://%HTTP_HOST%REQUEST_URI [L]

【讨论】:

以上是关于使用 .htaccess 控制某些页面上的 HTTPS的主要内容,如果未能解决你的问题,请参考以下文章

htaccess 修改在某些页面上起作用,但在其他页面上不起作用?

.htaccess:密码保护您的整个网站,但某些页面除外

使用 .htaccess 文件后,从我网站上的一个页面重定向到另一个页面会导致 404 错误

htaccess - 重定向到错误页面问题(带斜线或不带斜线)

通过 .htaccess 替换查询字符串中的字符

htaccess 301 重定向某些 URL 模式