使用Mod_rewrite将HTTP重定向到HTTPS

时间:2013-07-08 08:01:57

标签: apache url-rewriting http-redirect

我需要从http://test-glad/redirect重定向到https://test-glad/start.do

主要问题是我需要在请求中维护POST参数。

我无法使用标准的http重定向执行此操作,因为POST params不会像RFC中指定的那样重新发送

我也尝试使用代理通行证,但这不起作用。

我现在正在尝试使用Apache URL重写但努力工作。你知道这是否可行。如果是这样,我们将非常感谢您对语法的一些帮助。

我正在使用Apache 2.2

非常感谢

汤姆

1 个答案:

答案 0 :(得分:3)

您是在localhost还是在实时服务器上尝试? 将http重定向到https(整个网站的SSL) 试试这个.httaccess

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

RewriteCond %{SERVER_PORT}s ^(443(s)|[0-9]+s)$
RewriteRule ^(.*)$ - [env=askapache:%2]

# redirect urls with index.html to folder
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index.html HTTP/
RewriteRule ^(([^/]+/)*)index.html$ http%{ENV:askapache}://%{HTTP_HOST}/$1 [R=301,L]

# change // to /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)//(.*) HTTP/ [NC]
RewriteRule ^.*$ http%{ENV:askapache}://%{HTTP_HOST}/%1/%2 [R=301,L]