如何使用 Apache 阻止域?
How to block Domain with Apache?
我们在 Digital Ocean 上有一个网站 example.com。似乎有一个用户曾经使用我们的 IP 地址为他们的站点启用了域屏蔽,或者他们只是将他们的域 domain.com 指向我们的 sute。我们不想 domain.com 显示我们的网站,所以我想阻止 domain.com。
我尝试使用本指南:
https://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/
,但这似乎不适用于域屏蔽。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)?domain(-|.).*$ [NC]
RewriteRule ^(.*)$ - [F,L]
</IfModule>
我看到了这个例子:https://serverfault.com/questions/796674/block-masking-url-from-nginx/
,但我不知道如何将其转换为 Apache。
@arkascha 建议我使用 Apache 的虚拟主机来完成这项工作。
我们的想法是让您的默认主机拒绝访问,然后添加另一个允许访问您的域的虚拟主机。这意味着没有黑名单,而是白名单。这可以防止未来或未知域引起类似问题。
这是我的 etc/apache2/sites-available/000-default.conf 的内容,它成功阻止了来自 domain.com 的流量,并允许来自 example.com 的流量:
<VirtualHost *:80>
ServerName catchall
<Location />
Require all denied
</Location>
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html/public
<Directory /var/www/html/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我们在 Digital Ocean 上有一个网站 example.com。似乎有一个用户曾经使用我们的 IP 地址为他们的站点启用了域屏蔽,或者他们只是将他们的域 domain.com 指向我们的 sute。我们不想 domain.com 显示我们的网站,所以我想阻止 domain.com。
我尝试使用本指南: https://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/ ,但这似乎不适用于域屏蔽。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)?domain(-|.).*$ [NC]
RewriteRule ^(.*)$ - [F,L]
</IfModule>
我看到了这个例子:https://serverfault.com/questions/796674/block-masking-url-from-nginx/ ,但我不知道如何将其转换为 Apache。
@arkascha 建议我使用 Apache 的虚拟主机来完成这项工作。
我们的想法是让您的默认主机拒绝访问,然后添加另一个允许访问您的域的虚拟主机。这意味着没有黑名单,而是白名单。这可以防止未来或未知域引起类似问题。
这是我的 etc/apache2/sites-available/000-default.conf 的内容,它成功阻止了来自 domain.com 的流量,并允许来自 example.com 的流量:
<VirtualHost *:80>
ServerName catchall
<Location />
Require all denied
</Location>
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html/public
<Directory /var/www/html/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>