我一直在尝试重定向网络流量HTTP到HTTPS通过在文件中添加以下行httpd.conf
:
Redirect permanent / https://100.100.100.100
但无济于事。浏览器响应是Firefox has detected that the server is redirecting the request for this address in a way that will never complete
。
我知道它适用于域名,但我的服务器不使用域名。有什么办法可以解决这个问题/我做错了什么。
答案1
我怀疑您的 Redirect 行位于配置文件的一部分,该部分同时影响 SSL 和非 SSL 部分。因此,即使您请求 SSL 版本,您仍然会重定向到 SSL 版本。
如果配置文件中有一部分仅适用于非 SSL,请将 Redirect 移至那里。如果没有,请将其转换为 RewriteRule 并在其前面使用 RewriteCond,如下所示:
RewriteCond %{HTTPS} off
RewriteRule / https://100.100.100.100/ [R=301]
答案2
Apache 有一个专门的页面,标题为“何时不使用 mod_rewrite“
以他们为榜样
要将 http URL 重定向到 https,请执行以下操作:
<VirtualHost *:80>
ServerName www.example.com
Redirect "/" "https://www.example.com/"
</VirtualHost >
<VirtualHost *:443>
ServerName www.example.com
# ... SSL configuration goes here
</VirtualHost >
答案3
使用 mod_rewrite:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R,L]