我想爲給定的URL提供2個不同版本的文件,具體取決於站點子域。Nginx重寫規則取決於子域
這裏就是我現在想:
location /robots.txt {
if ($http_host ~* [www|fr|es|uk|de]\.example\.com) {
rewrite ^/robots.txt$ /robots_index_all.txt break;
}
rewrite ^/robots.txt$ /robots_dont_index_anything.txt break;
}
所以,我想要的行爲是服務於robots_index_all.txt文件時,機器人的請求下,子域名WWW的/robots.txt,法國,西班牙,英國和德
這時如果/robots.txt的請求在任何其他子域做我想報效/robots_dont_index_anything.txt
我一直在嘗試這種重寫,但它不工作的始終,我意味着一些子域名的工作,對於其他一些子域名,以及那裏除了這個在服務器上沒有太多的其他配置
有什麼我在這裏做錯了嗎?
謝謝!
感謝您的回答,但我們實際上有900多個子域,並以這種方式這樣做將是龐大的,我也有包羅萬象的,但不是所有的領域都在那裏,所以我正在做的方式是有一個包括普通。 cfg在所有的服務器塊,這就是我想要一個單一的規則檢查子域的原因,如果可能是邪惡的,但你說是不可用? – jmserra
@jmserra好吧,無論如何都必須有一個模式,你不打算在900+重寫中管理它,對嗎?給我一個模式,我正則表達式的解決方案:) –
@jmserra,對不起,錯誤dyour編輯。如果做奇怪的事情,我會看到不止一次。也許它現在是固定的,不能說,我儘量不使用它。 –