2012-11-14 223 views
1

我在Windows上安裝了wampp服務器。在此服務器上,我有多個使用虛擬主機與主域一起運行的子域。一個要求是自動爲所有子域實現robots.txt。例如:Apache「別名」不包括某些域

site1.example.com 

site2.example.com 

site3.example.com 

site1.example.net 

site2.example.net 

因此,對於這個在http.conf中我已經寫:

Alias /robots.txt D:/wampp/static-files/override-robots.txt 

以上fullfills在example.com & example.net和創建的每個新的子域所有子域的要求會默認情況下有這個robots.txt,並且不必爲每個robots.txt放置不同的robots.txt,但問題在於某些主域也位於此服務器上,並且robots.txt也會從上面運行。例如:

www.primarydomain1.com 

www.primardomain2.com 

現在,我想那是什麼example.com & example.net的所有子域將擁有的robots.txt自動扣除上述所有主域中運行。可能是Apache Alias不是這樣做的最好方式,所以任何關於它的幫助或提示都會非常有幫助。

感謝

回答

2

一些嘗試,並運行,我發現了一個解決方案,我認爲這可以幫助別人,如果我在這裏分享:

基本上,在httpd.conf文件我已經寫:

Alias /robots.txt D:/wampp/static-files/override-robots.txt 

所以這將運行的每個域和子域,但它可以被覆蓋的特定域/子域定義在虛擬主機文件,即httpd-vhosts.conf,在每個域/子域的虛擬主機容器內。因此,舉例來說,如果我要爲不同的robots.txt爲www.primarydomain1.com:

<VirtualHost 212.212.212.212> 
    DocumentRoot "D:/WebSites-Data/primarydomain1.com" 
    ServerName primarydomain1.com 
    ServerAlias www.primarydomain1.com 
    ErrorLog "logs/primarydomain1.com-error.log" 
    CustomLog "logs/primarydomain1.com-access.log" combined 
    Alias /robots.txt D:/WebSites-Data/primarydomain1.com/this-robots.txt 
</VirtualHost> 
這樣

所以,如果有人打www.primarydomain1.com/robots.txt阿帕奇將

的robots.txt服務
D:/WebSites-Data/primarydomain1.com/this-robots.txt 

和其他域/子域這樣可防止服務:

Alias /robots.txt D:/wampp/static-files/override-robots.txt 

這也導致了這一事實,我們可以覆蓋httpd.conf中特定域的一些設置,如果我們把它定義在虛幻容器中。

上述解決方案對我來說工作正常。如果有這個解決方案的缺點,請與我分享。

謝謝

+0

3年後適合我。謝謝! – resting