重定向至 404 通配符子域名

重定向至 404 通配符子域名

我在域名注册商处设置了通配符 A 记录。现在,如果用户访问我的域名上缺少的子域名,他们将被重定向到主页。目前我的初始设置如下:

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  RewriteEngine On
  RewriteRule ^(.*)$ http://domain.com$1 [R]
  DocumentRoot /var/www
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>
  # more below...
</VirtualHost>

任何通配符子域名或通过 URL 输入我的 IP 都会重定向到主页。我可以对此做些什么,将通配符子域名重定向(可能是 HTTP 重定向)到 404 页面而不是主页吗?

答案1

禁用 RewriteEngine,并指定一个空目录作为 DocumentRoot:

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/empty-directory-that-i-just-created
  # more below...
</VirtualHost>

由于此 VirtualHost 使用空目录作为 DocumentRoot,Apache 将无法满足任何请求;它将对所有请求返回 404。

答案2

如果您想要 404 代码而不是这个代码的原因是“有效的永久错误代码”,那么您还可以考虑使用代码 [F] 重写为状态代码 403 并出现 403 错误页面。

DocumentRoot /some/valid/directory
ErrorDocument 403 /nothere.html

RewriteRule /nothere.html /nothere.html [L]
RewriteRule . - [F,L]

403 页面的重写规则是为了避免配置错误。

相关内容