Apache 使用Mod_rewrite将HTTP重定向到HTTPS

Apache 使用Mod_rewrite将HTTP重定向到HTTPS,apache,url-rewriting,http-redirect,Apache,Url Rewriting,Http Redirect,我需要从http://test-glad/redirect至https://test-glad/start.do 主要问题是我需要在请求中维护POST参数 我无法使用标准http重定向来执行此操作,因为POST参数没有按照RFC中的指定重新发送 我也尝试过使用代理通行证,但这不起作用 我现在正尝试使用ApacheURL重写来实现这一点,但仍有困难。你知道这是否可行吗。如果是这样的话,在语法方面的一些帮助将不胜感激 我正在使用Apache2.2 非常感谢 Tom您是在本地主机上还是在实时服务器上进

我需要从
http://test-glad/redirect
https://test-glad/start.do

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

我无法使用标准http重定向来执行此操作,因为POST参数没有按照RFC中的指定重新发送

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

我现在正尝试使用ApacheURL重写来实现这一点,但仍有困难。你知道这是否可行吗。如果是这样的话,在语法方面的一些帮助将不胜感激

我正在使用Apache2.2

非常感谢


Tom

您是在本地主机上还是在实时服务器上进行尝试? 将http重定向到https(整个网站的SSL) 在.httaccess中试试这个

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


这是一个实时服务器。对不起,我不知道.httaccess文件在哪里。我只有一个httpd.conf文件。我试过你的第一个建议,但没有任何效果。但我不相信这条规则会被打破。我尝试了一个基本的重定向规则,但也不起作用。我已经加载了mod rewrite模块。我还需要做什么吗?好的。。抱歉,它的.htaccess文件,如果您没有,请创建一个新文件名
.htaccess
{带点!}&将代码(请尝试任何人,都可以)放在该文件中,并将该文件放在服务器目录的根目录中,比如说它的public_html或www目录我确信httpf.conf文件中的mod_rewrite已启用,可以通过phpinfo()验证。检查此链接是否有帮助。好的,我已经让您的第一个解决方案工作了。它是从我的工作,因为我有重定向到位使用vitualhost端口80。direct正在工作,但未通过post参数。
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]