Apache 重定向到 IP 地址(非 URL)

Apache 重定向到 IP 地址(非 URL)

我一直在尝试重定向网络流量HTTPHTTPS通过在文件中添加以下行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]

相关内容