我通过编辑 /etc/hosts 并按以下方式添加几个换行符来阻止一些网站:
0.0.0.0 www.域名.com
而且它确实有效。唯一的问题是:当访问被阻止的网站时,浏览器将被重定向到我的http://localhost
,从而导致在我的本地主机根环境中运行目录列表或网站演示。
这不是什么大问题,但我更喜欢标准错误,指出该网站无法访问(例如 404 页面)。这可能吗?
答案1
我假设您正在运行本地 Web 服务器?看起来您是在运行,所以我假设是这样。另外,我希望您使用的是 Apache,尽管其他 Web 服务器可能具有相同的功能,但我没有使用过其他任何服务器。
如果您要屏蔽大量网站,这可能会带来很多麻烦,但您可以创建一个虚拟域,其中包含 404 页面的起始页。如果您懂 PHP,您可以用被屏蔽网站的名称自定义它,以显示更具信息性的消息。
hosts 文件保持不变,并将在 中对 Apache 的配置文件进行添加/etc/apache2/sites-enabled
。最初,只有文档根目录,我认为定义为/var/www
;您不仅可以更改它,还可以添加任意数量的具有相关名称和别名的其他目录。
我的想法是为包含 404 页面的新目录添加一个。确定目录和“站点名称”,然后向文件添加新条目。例如:
<VirtualHost *:80>
<Directory /var/www/my404>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
DocumentRoot /var/www/my404/
ServerName my404.loc
ServerAlias www.domain.com
</VirtualHost>
您可以使用 向 hosts 文件添加条目localhost my404.loc
,然后输入 即可在本地访问该页面进行测试http://my404.loc
。www.domain.com
如果您的 hosts 文件中有该条目,希望您也可以通过 访问它。随着您在 hosts 文件中添加更多条目,您应该能够继续添加更多“ServerAlias”条目。
我希望这对您来说已经足够清楚,甚至可能对您有所帮助。如果您认为这有帮助,但还不够清楚,请随时询问。
没有保证,因为我从来没有真正尝试过这一切。:)