我在使用 Lighttpd 的 Ubuntu 服务器上设置了一些域名。我有通配符域名,我希望未使用的子域名返回 404 而不是 200 并显示常规域名。这个问题引起了我的注意,因为一些经验不足的搜索引擎(Bing、百度、mail.ru)正在使用奇怪的子域名为我的网站编制索引。
我发现这里也有针对 Apache 的相同问题:通配符 DNS、apache2 上的 VirtualHosts、未使用的子域名的 404
然而我还没有找到有关 Lighttpd 的任何信息。
我想www.example.com/*
重定向301
至example.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" )
}