我有一個問題,在Ubuntu Server 12.04上,使用mod_rewrite強制使用Apache 2.2.22將HTTP請求重定向到HTTPS。使用Apache將HTTP重定向到HTTPS
我的/ etc/apache2的/網站可用/默認文件如下:
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
的HTTPS主機在默認的SSL定義在同一個目錄。
訪問服務器的本地IP地址,重定向似乎工作正常。但是,通過FQDN訪問它並不會。使用FQDN,該站點在端口5443上可用,該端口在防火牆中映射到服務器上的443端口,因此可能與該問題有關。我不能直接使用端口443,因爲它由另一臺服務器在此IP地址上使用。
爲了進一步澄清,以下是有效的鏈接:
https://website:5443
https://192.168.200.80:443
重定向在這裏工作:
http://192.168.200.80
但下面給出一個400錯誤的請求,這是需要重定向哪裏:
http://website:5443/
「您的瀏覽器發送了此服務器無法理解的請求。 原因:您正在向使用SSL的服務器端口說純HTTP。 請使用HTTPS方案訪問此URL。「
這似乎是一個很長的路做一個簡單的事情,也許你有這方面的原因,但。在任何情況下,你應該檢查出mod_proxy:http://httpd.apache.org/docs/2.0/mod/mod_proxy.html以及相關的SO問題:http://stackoverflow.com/questions/1162375/apache-port -代理。 –