2016-07-29 8 views
0

Ich habe ein kleines Problem in .htaccess Datei, ich habe in einigen Stack-Links untersucht, konnte aber mein Problem nicht lösen.Bedingte .htaccess für Multisite

ich eine Multi-Domain-Website gehostet haben, was ich will, ist: Wenn es eine Sub-Domain ist und ich Zugriff auf diese URL

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

Dies sollte die sitemap.xml Datei aus subdomains/subdomain1 abholen und subdomains/subdomain2 verbunden, die mit dieser Regel große Werke:

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

Wenn gibt es www.example.com dann die Aufnahme sitemap.xml aus dem Stammordner des Projekts.

Ich habe dies versucht, aber nicht funktioniert:

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

Es gibt mir 500 internal server Fehler.

Irgendwelche Hilfe?

+0

Immer wenn du auf einen 500 Fehler triffst, der absolute erste Thi Sie müssen immer die Fehlerprotokolle des Servers überprüfen. – CBroe

+0

Es führt mich zur Umleitung Schleife. –

Antwort

1

Ihre RegEx-Bedingung in RewriteCond %{HTTP_HOST} ^(.*)\.example(.*).com [NC] entspricht sogar www.example.com, so dass es eine Umleitungsschleife geben wird.

Der Rewrite Zustand Alternative, die Sie als RewriteCond %{HTTP_HOST} ^www.example.com [NC] angegeben wird nicht funktionieren, da es nicht www.example.com

überein diesem Regex Zustand Versuchen

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

ODER

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

+0

Das funktioniert, ich habe eine kleine Änderung vorgenommen,^(?! www) (. *) \. Example (. *). Com –