2016-07-29 41 views
0

我在.htaccess文件中遇到了一個小問題,我查看了一些堆棧鏈接,但無法解決我的問題。多站點條件.htaccess

我主持了多域名網站,我要的是:如果有一個子域,我訪問此網址

subdomain1.example.com/sitemap.xml 
subdomain2.example.com/sitemap.xml 

這應該從subdomains/subdomain1拿起sitemap.xml的文件subdomains/subdomain2分別與這條規則的偉大工程:

RewriteCond %{HTTP_HOST} ^(.*)\.example(.*).com [NC] 
RewriteRule ^(sitemap.xml|robots.txt)$ subdomains/%1/$1 [L,NC] 

如果www.example.com然後皮卡來自項目根文件夾的sitemap.xml

我已經試過這一點,但不工作:

RewriteCond %{HTTP_HOST} ^www.example.com [NC] 
RewriteRule ^(sitemap.xml|robots.txt)$ http://www.example.com/$1 [L,NC] 

它給了我500 internal server錯誤。

任何幫助?

+0

無論何時遇到500錯誤,絕對首先要考慮你總是去檢查服務器的錯誤日誌。 – CBroe

+0

它導致我重定向循環。 –

回答

1

您的RegEx條件在RewriteCond %{HTTP_HOST} ^(.*)\.example(.*).com [NC]甚至匹配www.example.com,所以會出現重定向循環。

您指定爲RewriteCond %{HTTP_HOST} ^www.example.com [NC]重寫條件的替代是行不通的,因爲它是不匹配www.example.com

試試這個正則表達式的條件

^(?!www).*\.example(.*).com

OR

RewriteCond %{HTTP_HOST} ^(?!www).*\.example(.*).com [NC]

+0

這是行得通的,我做了一個小改動,這樣做,^(?! www)(。*)\。example(。*)。com –