默认除HTTP连接之外的所有页面,除了需要为HTTPS的4个页面

时间:2011-09-27 10:53:56

标签: .htaccess ssl redirect url-rewriting

我是.htaccess和重写规则的新手,我正在努力。基本上我正在一个有数千页的网站上工作,我需要所有的页面都是HTTP,除了收集客户数据收集和支付过程的4个页面。

我知道我需要的是:

RewriteCond %{HTTPS} on
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{REQUEST_URI} ^/(index\.php)?$ [NC]
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301, NC]

RewriteCond %{HTTPS} on
RewriteCond %{QUERY_STRING} ^view=(default|new(&.*)?)$ [NC]
RewriteCond %{REQUEST_URI} ^/?index\.php$ [NC]
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301, NC]

您可以提供的任何帮助都会受到很大的限制。

1 个答案:

答案 0 :(得分:1)

要确保始终通过HTTPS提供这4个页面,请尝试以下规则:

RewriteEngine On

RewriteCond %{HTTPS} =off
RewriteRule ^(cart|Cart|summary|control)\.php$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

此规则将始终将这些网页重定向到HTTPS(如果不存在):example.com/cart.phpexample.com/Cart.phpexample.com/summary.phpexample.com/control.php(所有网页都位于网站根目录中,如你可以看到)。如果他们有不同的网址,请相应地调整规则。