Apache中的重定向问题

时间:2014-01-31 06:51:29

标签: apache mod-rewrite

我启用了https,可以使用HTTP和HTTPS导航应用程序而无需重写。 Apache 2.2.24。但我看到一种奇怪的行为:

如果传递400 bad request则接收http://hostname.com/XXX,但与url/xxx/一起正常工作}不知道/如何帮助重定向到https。

此外,在httpd.conf中启用了以下重写,但没有看到差异。 此外,HTTP重定向不起作用。

重写引擎

RewriteEngine On

现在重写规则

RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://hostname.com/XXX [R,L]`

1 个答案:

答案 0 :(得分:0)

最简单的方法是制作2个虚拟主机,一个监听IP:80(HTTP)重定向到HTTPS,另一个监听IP:443(HTTPS)。

<VirtualHost private_ip_of_your_server:80>
    ServerName www.mywebsite.com

    ErrorLog /var/log/apache/http_www_mywebsite_com_error.log
    CustomLog /var/log/apache/http_www_mywebsite_com_access.log combined

    RedirectPermanent / https://www.mywebsite.com/
</VirtualHost>

<VirtualHost private_ip_of_your_server:443>
    ServerName www.mywebsite.com

    ErrorLog /var/log/apache/https_www_mywebsite_com_error.log
    CustomLog /var/log/apache/https_www_mywebsite_com_access.log combined
</VirtualHost>

不要忘记添加两个相关的NameVirtualHost指令:   - NameVirtualHost private_ip_of_your_server:80   - NameVirtualHost private_ip_of_your_server:443

此致