2016-08-08 36 views
0

Ich versuche eine Sitemap für meine Multistore Magento Website zu erstellen. So hat jeder Shop-View eine eigene Sitemap. Deshalb habe ich gemachtBedingungen in htaccess umschreiben

Sitemap/store_en/sitemap.xml

Sitemap/store_de/sitemap.xml

Sitemap/store_nl/sitemap.xml

Was ich versuche zu erreichen Umleiten auf Anfrage von mydomain.nl/sitemap.xml nach mydomain.nl/sitemap/store_nl/sitemap.xml

Dies habe ich in meine Htaccess-Datei geschrieben. Aber das funktioniert nicht. Kann jemand sehen, was ich falsch mache?

##rewrite rule for de sitemaps 

RewriteCond %{HTTP_HOST} ^.*mydomain.nl$ 
RewriteRule ^sitemap.xml$ /sitemap/store_nl/sitemap.xml [NC] 

Ich habe eine andere Rewrite-Regel. Ich weiß nicht, ob es irgend Einfluss ist ...

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteCond %{REQUEST_URI} !(.*)\.(html|shtml|php)$ 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [L,R=301] 

Vielen Dank im Voraus!

+0

Diese Regel sieht auf den ersten Blick gut aus. Sind Sie sicher, dass die Interpretation von '.htaccess'-Dateien überhaupt aktiviert ist und dass die Datei korrekt liegt? Der nächste Schritt besteht dann darin, die Neuschreiben-Protokollierung zu aktivieren und nach den detaillierten Schritten in Ihrer Neuschreibe-Engine zu suchen. Dies weist normalerweise darauf hin, was falsch ist. – arkascha

+0

Er dankt Ihnen für Ihre Hilfe! Die Datei funktioniert wie die andere (die letzte) Rewrite-Regel funktioniert gut. Wie kann ich die Neuschreiben-Protokollierung aktivieren? Ich bin nicht so vertraut ... –

+0

Für solche Fragen muss Ihr erster Blick _always_ immer auf der offiziellen Dokumentation sein. Sie können _cannot_ ohne die Dokumentationen der Werkzeuge und Dienstprogramme, die Sie verwenden, konsultieren! http://httpd.apache.org/docs/current/mod/mod_rewrite.html – arkascha

Antwort

0

Anweisungen für mod_rewrite werden von oben nach unten gelesen und verarbeitet. In Ihrem Fall hatten Sie die Umleitung in der Spitze. Diese Regeln stimmen überein (sitemap.xml ist keine Datei oder ein Verzeichnis endet nicht mit einem Schrägstrich, HTML, Shtml oder PHP). Sie fügen einen zusätzlichen Schrägstrich hinzu und leiten die Anfrage um.

Jetzt kommt eine neue Anfrage für /sitemap.xml/. Die erste Regel passt nicht (endet mit Schrägstrich) und die zweite Regel stimmt nicht überein (Anfrage endet nicht mit xml, sondern mit xml/). Sie servieren einen 404-Fehler.

Beim Wechseln der Regeln wird die URL (/sitemap.xml) mit der ersten Regel abgeglichen und passt. Es ist jetzt neu geschrieben. Beim zweiten Durchlauf stimmt die erste Regel nicht überein, und die zweite Regel stimmt nicht überein (gültige Datei).

+0

Vielen Dank für die klare Erklärung! :-) –