【问题标题】:Apache 2.4 redirect direct IP accessApache 2.4 重定向直接 IP 访问
【发布时间】:2018-07-20 06:38:51
【问题描述】:

我正在尝试重定向用户,使其不再通过直接 IP 访问我的网站。 我使用 certbot 自动配置重定向 http->https。

到目前为止,我的网站可以从以下位置访问:

https://example.com
https://www.example.com
http://example.com (-> https redirection ok)
http://www.example.com (-> https redirection ok)
example.com (-> https redirection ok)
www.example.com (-> https redirection ok)

问题是:当我在浏览器中输入直接 IP 地址时,firefox 显示 https://xx.xx.xx.xx 不安全错误页面,Edge 允许不安全连接。

到目前为止,我使用 StackOverflow 所做的是: 创建一个新的 000-catch-all.conf(不确定是否真的有用):

<VirtualHost xx.xx.xx.xx:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot....
Redirect permanent / https://www.example.com
</VirtualHost>

我的虚拟主机示例:

<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot    
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com [OR]
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI [END,NE,R=permanent]
</VirtualHost>

我的 SSL 示例虚拟主机:

<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot....
SSLCertificateFile...
</VirtualHost>

所有 3 个 VirtualHost 都已启用,apache 已重新启动。 找不到重定向直接 IP 访问的方法。 有什么提示吗?

谢谢

阿诺

【问题讨论】:

    标签: apache


    【解决方案1】:

    默认情况下,当 Apache 在请求中没有收到域名时(在您的上下文中,它会获取 IP 地址),它会使用它找到的第一个 VirtualHost。在这里,*:80 之一。

    在那里,你说 RewriteCond, if = ... 相反,完全删除 RewriteCond 并始终强制重定向到 https。

    喜欢这里:https://wiki.apache.org/httpd/RedirectSSL 或:http to https apache redirection

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-04
      • 2015-10-18
      • 2017-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多