仅通过htaccess将http重定向到https几页

时间:2011-03-28 07:39:27

标签: .htaccess https

我有启用SSL的网站。

问题:我希望http仅针对结帐页面重定向到https。

我正在使用以下代码进行重定向:

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

但它将所有http重定向到htaccess。

我想要的:我想在htaceess上加上一些条件,这样只有结帐页面会重定向到https,否则不会重定向。

2 个答案:

答案 0 :(得分:0)

您必须抓住端口80上的结帐页面的请求

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} your-checkout-uri-pattern
RewriteRule ^(.*)$ https://your-sslized-site/$1 [R,L]

答案 1 :(得分:0)

下面的代码解决了我的问题(当我在api中使用它时)。它也可能解决你的问题。试一试。

你走了,

# For redirecting HTTP to HTTPS, comments are line by line
# below line checks for https flag
RewriteCond %{HTTPS} off
# below line excludes the mentioned URIs from redirection
RewriteCond %{REQUEST_URI} !^/(myFirstUri|mySecondUri|myThirdUri)
# below line redirects all other URIs except the ones that are mentioned above
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

所以,这里发生的事情是我的所有请求都会被重定向到https,除了以下的

  

abc.123 / myFirstUri将成为http://abc.123/myFirstUri

     

abc.123 / myFirstUri / qw / etc也将如上所述重新定向

其他请求将被重定向到https,例如

  

abc.123 / test变为https://abc.123/test