apache - 在 Magento 中使用结帐异常将 HTTPS 重定向到 HTTP (Apache)

标签 apache .htaccess magento redirect https

我正在使用带有一步结帐插件的 Magento 安装,这意味着我只有很少的页面需要 HTTPS。我想通过重定向网站的整个 HTTPS 版本来控制 HTTPS 搜索索引和用户访问当然为了安全结帐。

安全结帐部分是 /onestepcheckout/(还包括它的一些子页面,即 onestepcheckout/failure)。

这是我目前所拥有的,但是 HTTPS 没有在使用此代码的结帐页面上启动,重定向在所有其他情况下都有效(即我将索引 HTTPS 发送到索引 HTTP)只是被破坏的异常:

#Redirect HTTPS to HTTP except checkout 
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^onestepcheckout
RewriteRule ^(.*)$ http://www.mysite.co.uk/$1 [R=301,L]

#Require SSL on checkout
RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} ^onestepcheckout\/?$
RewriteRule ^(.*)$ https://www.mysite.co.uk/$1 [R=301,L]

我也隐隐约约地注意到 /onestepcheckout/ 不包含安全资源,因此可能需要在图像和样式表等中添加异常。

最佳答案

不要忘记,虽然 RewriteRule 中的路径是相对于 .htaccess 文件的上下文进行评估的,但 REQUEST_URI 变量与实际请求相关,因此包含初始斜杠。

所以你需要

RewriteCond %{REQUEST_URI} ^/onestepcheckout\/?$

或者,您可以引用重写规则中捕获的部分:

RewriteCond $1 !^onestepcheckout/

关于apache - 在 Magento 中使用结帐异常将 HTTPS 重定向到 HTTP (Apache),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3520867/

相关文章:

apache - 使用 .htaccess

magento - 客户无法使用 PayPal Website Payments Standard 登录而不用卡支付

xml - 如何删除 Magento 中的 “My Cart” 和 “Checkout” 菜单链接?

apache - 如何在 Apache + Tomcat 设置上设置 SSL

php - 特定文件的mod_rewrite异常

apache - 使用 .htaccess 删除 URL 中不需要的部分

wordpress - 子域的 .htaccess 规则强制在所有页面上使用 https

php - Magento:手动登录不起作用

php - htaccess 添加 www 如果不是子域,子域删除 www

java - 从 apache HttpResponse 获取响应 Uri 参数