我有一个目录设置,其中有一条错误消息http://localhost/blocked/
。我想将主机中与我已阻止的网站相关的条目定向到那里,而不仅仅是127.0.0.1
。127.0.0.1/blocked/
不起作用。我对主机文件一无所知,这甚至可能不是实现我的目标的最佳方式。
重申:我想将针对特定域的所有请求定向example.com
到,例如 http://localhost/blocked/
。
答案1
嗯,您可以考虑以下几点:
- 在您的文件中为所有被阻止的域创建条目
hosts
,指向127.0.0.1
(我想您已经这样做了) <VirtualHost>
在 Apache 配置中创建一个块ServerAlias
,其中每个被阻止的域都有一行。或者其中一个可以是 aServerName
,其余的ServerAlias
是 es。在此虚拟主机中,您可以将所有请求重定向到“被阻止”错误页面的现有 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
。显然路径名只是示例。
确保NameVirtualHost *:80
Apache 配置中某处出现一行。(或者,如果您想捕获 80 以外的端口上的请求,也可以安排)
答案2
hosts 文件只关心主机。不关心主机内的目录。为了实现你所希望的功能,你需要从http://本地主机/到http://localhost/blocked/。如果您正在运行 apache,则可以使用 mod_alias 或 mod_rewrite 来实现这一点。