【发布时间】:2011-10-31 07:22:43
【问题描述】:
我知道这个问题已经被问死了,但是出于某种原因,在我阅读的 20 篇帖子中,没有任何内容适合我,希望有人能提供一些见解。
基本上,我有一个简单的购物车,我想将 2 个 uri 重定向到 HTTPS、我的结帐页面和我的管理文件夹:
/checkout
/admin
我可以使用以下代码成功重定向到 HTTPS 版本进行结帐:
RewriteEngine On
#https
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^checkout https://palatinehillsestatewinery.com/checkout [R=301,L]
# remove index.php, this is just included to show everything in my .htaccess
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
我发现这个和所有其他解决方案的问题是,一旦我决定返回一个不应该是 HTTPS 的页面,URL 就会保持 HTTPS。
我一直在摸索循环等。
如果有人可以帮助仅在这 2 个页面上重定向到 HTTPS,然后在所有其他页面上重定向到 http,那将是一个很大的帮助,非常感谢。
【问题讨论】:
-
修正了你的标题,因为我怀疑你不需要将 HTTP 重定向到 HTTP。
-
您的方法听起来不安全,原因如下:如果您让用户在使用 HTTP 连接时登录,那么您将他的登录凭据暴露给任何窃听者。我不知道你想通过避免使用 HTTPS 来获得什么,但请停止这样做。 SSL 并不像您想象的那样占用大量资源。而且它也绝对不是页面加载速度优化的好地方。