2013-07-08 126 views
2

我需要重定向从http://test-glad/redirect TO https://test-glad/start.do使用mod_rewrite重定向HTTP到HTTPS

的主要问题是我需要保持在POST请求参数。

我无法做到这一点使用标准的HTTP重定向作为在RFC

我一直在使用代理证这是行不通的也试过指定post数据并不怨恨。

我现在正在试图做到这一点使用Apache URL重写,但挣扎。你知道这是否可能。如果是的话,那么对语法的一些帮助将非常感激。

我使用的Apache 2.2

非常感谢

汤姆

回答

3

,你想它在本地主机上或现场服务器上? 重定向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] 
+0

这是一个活的服务器。对不起,我不知道.httaccess文件的位置。我只有一个httpd.conf文件。 – shawsy

+0

我曾试过你的第一个建议,但它没有任何效果。但我不相信该规则正在遭受打击。我尝试了一个基本的重定向规则,这也没有奏效。我已经加载了mod-rewrite模块。我需要做其他事吗? – shawsy

+0

确定..对不起它的.htaccess文件,如果没有它,然后创建一个新的文件名'.htaccess' {了点!}把代码(尝试任何人,应该工作)的文件和发生在服务器目录的根目录中的文件会说明其public_html或www目录。 &我敢肯定mod_rewrite并在httpf.conf文件中启用可以通过phpinfo()函数来验证 –