【问题标题】:How disable direct ip access in Apache如何在 Apache 中禁用直接 ip 访问
【发布时间】:2019-02-04 20:12:07
【问题描述】:

我有一个有CloudFlare保护的网站,貌似也不错,不过输入我服务器的原IP就可以正常进入了。

我正在使用 Apache (XAMPP) 和 SSL (https://)

当您使用 CloudFlare 从 IP 地址输入时,我想要类似的东西,这会引发错误 1003

【问题讨论】:

标签: apache ssl xampp


【解决方案1】:

编辑或创建一个默认虚拟主机并将其放入:

<VirtualHost *:80>
    ServerName xxx.xxx.xxx.xxx
    Redirect 403 /
    DocumentRoot /var/www/html
</VirtualHost>

xxx.xxx.xxx.xxx 是你的服务器 ip 地址

之后重启你的apache

sudo a2ensite your-vhost.conf
sudo systemctl restart apache2

希望有帮助

【讨论】:

    【解决方案2】:

    您可以验证请求中收到的域是否与您的站点域匹配。如果不是,则强制重定向到用户。像这样:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^www.example.com
    RewriteRule (.*) https://www.example.com$1 [R=301,L]
    

    所以IP访问将被强制回域名。 显然,你可以返回任何东西,这只是我经常看到的一种方法。

    【讨论】:

      【解决方案3】:

      ubuntu 20.04下

      服务器版本:Apache/2.4.41 (Ubuntu)

      我刚刚将我的 000-default-ssl.conf 复制为 disable-ip.ssl.conf 并放在内容下方

      cd /etc/apache2/sites-available
      cp 000-default-ssl.conf disable-ip.ssl.conf
      

      disable-ip.ssl.conf 虚拟主机文件的内容

      <IfModule mod_ssl.c>
              <VirtualHost *:443>
                      ServerAdmin root@localhost
                      ServerName localhost
                      ServerAlias XXX.XXX.XX.XX  # here write ip adresss of your web site
                      UseCanonicalName Off
                      Redirect 403 /
                      ErrorDocument 403 "Sorry, direct IP access not allowed."
      
                      ErrorLog ${APACHE_LOG_DIR}/error.log
                      CustomLog ${APACHE_LOG_DIR}/access.log combined
      
                      SSLEngine on
      
                      <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                      SSLOptions +StdEnvVars
                      </FilesMatch>
                      <Directory /usr/lib/cgi-bin>
                                      SSLOptions +StdEnvVars
                      </Directory>
      
                      SSLCertificateFile    /etc/letsencrypt/live/domain.com/fullchain.pem
                      SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem
                      Include /etc/letsencrypt/options-ssl-apache.conf
              </VirtualHost>
      </IfModule>
      

      然后

      a2ensite disable-ip.ssl.conf
      service apache2 restart
      

      【讨论】:

        猜你喜欢
        • 2018-07-20
        • 2015-05-20
        • 2021-05-11
        • 1970-01-01
        • 1970-01-01
        • 2021-08-29
        • 2012-02-01
        • 1970-01-01
        • 2020-05-14
        相关资源
        最近更新 更多