在我lighttpd.conf:lighttpd url.rewrite-once + =(...)擦除早期規則?
$HTTP["host"] =~ "^(www\.|foo\.|bar\.)?domain\.com$" {
url.rewrite-once += (
"^/favicon.ico$" => "/images/favicon_cd.ico",
"^/course/?$" => "/course/index.php",
"^/course/([^./]+)$" => "/course/index.php?w=$1"
)
}
...
# don't allow spiders to crawl subdomains
$HTTP["host"] =~ "^(foo\.|bar\.)?domain\.com$" {
url.rewrite-once += (
"^/robots.txt$" => "/robots_nocrawl.txt"
)
}
我們有www.domain.com
以及foo.domain.com
和bar.domain.com
針對特定的客戶。和普通domain.com
也應該工作。第一組重寫規則.../course/x
至.../course/index.php?w=x
。那些工作爲domain.com
和www.domain.com
,但對於foo.domain.com
和bar.domain.com
重寫不起作用。通過打開lighttpd的調試日誌記錄,我可以看到重寫不會發生。
如果我禁用rewrite-once
規則的第二塊,試圖防止機器人爬行foo.domain.com
和bar.domain.com
第一組重寫將適用於所有子域。
我非常肯定url.rewrite-once += (...)
的作品,因爲我有一套更早的應用全局重寫規則。
任何想法爲什麼只應該應用於foo和bar子域的最後一組重寫規則會阻止較早的規則工作?