让 Lighttpd 对未使用的子域名返回 404?

让 Lighttpd 对未使用的子域名返回 404?

我在使用 Lighttpd 的 Ubuntu 服务器上设置了一些域名。我有通配符域名,我希望未使用的子域名返回 404 而不是 200 并显示常规域名。这个问题引起了我的注意,因为一些经验不足的搜索引擎(Bing、百度、mail.ru)正在使用奇怪的子域名为我的网站编制索引。

我发现这里也有针对 Apache 的相同问题:通配符 DNS、apache2 上的 VirtualHosts、未使用的子域名的 404

然而我还没有找到有关 Lighttpd 的任何信息。

我想www.example.com/*重定向301example.com/*(已设置)

我希望allUnsetSubdomains.example.com/*返回404以便搜索引擎和人们明白它不存在。

vhost.conf以下是我的文件中的相关数据:

$HTTP["host"] =~ "^www\.(.*)$" {
  url.redirect = ( "^/(.*)" => "http://%1/$1" )
}

# lots of other domains #

$HTTP["host"] =~ "example.com$" {
server.document-root = "/var/www/example.com"
server.errorlog = "/var/log/lighttpd/example.com-error.log"
accesslog.filename = "/var/log/lighttpd/example.com-access.log"
server.error-handler-404 = "/index.php"
}

# lots more domains #

理想情况下,我希望能够有一个通用规则,即服务器上所有域的所有未使用的子域都返回404,就像 www 重定向一样。老实说,我不太了解 Lighttpd 配置文件或正则表达式。

答案1

你可以使用如图所示的小技巧开发者网站

} else $HTTP["host"] =~ "^something.domain.com$" {
    # ....
} else $HTTP["host"] =~ ".*" {
    url.redirect-code=404
    url.redirect = ( ".*" => "http://domain.com" )
}

相关内容