我有一个很好的错误消息在http://localhost/blocked/目录设置。 我想直接在我的主机,我已阻止的网站,而不是只有127.0.0.1条目。 127.0.0.1/blocked/不起作用。 我对主机文件毫无头绪,这可能不是实现我的目标的最好方法。
重申:我想要指定某些域的所有请求,例如example.com到http://localhost/blocked/ 。
那么,这是你可以考虑的事情:
hosts文件中为所有被阻止的域创build条目,指向127.0.0.1 (我想你已经这样做了) <VirtualHost>块,其中包含每个阻止域的ServerAlias行。 或者其中一个可能是一个ServerName ,其余的ServerAlias es。 在这个虚拟主机中,您可以将所有请求redirect到“已阻止”错误页面的现有URL,或者(也许更简单),只需将错误页面放在文档根目录中即可。 以下是我该怎么做:
<VirtualHost *:80> ServerName blocked.localhost ServerAlias example.com DocumentRoot /var/www/blocked.localhost/htdocs # put the usual <Directory> section for that document root </VirtualHost>
并将blocked/目录(在您的文件系统上)的全部内容移动到/var/www/blocked.localhost/htdocs 。 显然path名称就是例子。
确保NameVirtualHost *:80行显示在Apacheconfiguration中的某处。 (或者如果你想要捕获80以外的端口上的请求,也可以安排)
hosts文件只关心主机。 不在该主机内的目录。 为了做你想做的,你需要做一个从http:// localhost /redirect到http:// localhost / blocked / 。 如果你正在运行apache,你可以用mod_alias或者mod_rewrite来完成。