htaccess Umleitungen
snconline
- sonstiges
Hallo,
ich habe folgendes Problem.
Irgendwo in meinem XMAP Sitemap Generator ist ein Fehler. So kommt es vor, dass die xmap Anteile in der URL an beliebige URLs angehängt werden.
z.B.
http://www.snc-online.de/it-consulting?option=com_xmap&sitemap=1%25252520&Itemid=220
http://www.snc-online.de/it-consultingindex.php?option=com_xmap&sitemap=1%20&Itemid=220
http://www.snc-online.de/index.php?option=com_xmap&sitemap=1&itemid=220
Gibt es eine Möglichkeit, einfach alles, was mit option=com_xmap zu tun per .htaccess
auf http://www.snc-online.de/sitemap
weiterzuleiten?
Vielen Dank,
Uwe
Gibt es eine Möglichkeit, einfach alles, was mit option=com_xmap zu tun per .htaccess
auf http://www.snc-online.de/sitemap
weiterzuleiten?
Ja und zwar eine ziemlich einfache.
Vor den übrigen Umleitungen, deren Suchausdrücke "matchen" könnten:
rewrite engine on
option=com_xmap http://www.snc-online.de/sitemap [L,302]
Das bricht die weitere Untersuchung ab und schickt dem Client (Browser, Google-Bot...) die Information, dass die gesuchte Information an einer anderen Steller gefunden wurde, wo diese doch bitteschön abzuholen sei.
Lese
Gibt es eine Möglichkeit, einfach alles, was mit option=com_xmap zu tun per .htaccess
auf http://www.snc-online.de/sitemap
weiterzuleiten?Ja und zwar eine ziemlich einfache.
Vor den übrigen Umleitungen, deren Suchausdrücke "matchen" könnten:
rewrite engine on
option=com_xmap http://www.snc-online.de/sitemap [L,302]
>
> Das bricht die weitere Untersuchung ab und schickt dem Client (Browser, Google-Bot...) die Information, dass die gesuchte Information an einer anderen Steller gefunden wurde, wo diese doch bitteschön abzuholen sei.
>
> Lese
> - [http://httpd.apache.org/docs/2.2/rewrite/remapping.html](http://httpd.apache.org/docs/2.2/rewrite/remapping.html)
> - [http://de.wikipedia.org/wiki/HTTP-Statuscode](http://de.wikipedia.org/wiki/HTTP-Statuscode)
>
> [Jörg Reinholz](http://www.fastix.org)
Hallo Jörg,
wenn ich das einfüge:
RewriteEngine On
RewriteRule option=com\_xmap http://www.snc-online.de/sitemap [L,302]
oder wir beschrieben direkt:
option=com\_xmap http://www.snc-online.de/sitemap [L,302]
dann bekomme ich einen Fehler auf der gesamten Seite:
500 Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Apache Server at www.snc-online.de Port 80
Uwe
Ok. ich korrigiere die Kleinigkeit:
RewriteRule option=com_xmap http://www.snc-online.de/sitemap [L,R=302]
Da es der selbe Server ist bietet sich übrigens auch:
[code lang=apache]RewriteRule option=com_xmap /sitemap [L] [code]
an.
Hättest Du an den von mir angegebenen Stellen gelesen, dann hättest du das auch selbst rausgefunden...
Ok. ich korrigiere die Kleinigkeit:
RewriteRule option=com_xmap http://www.snc-online.de/sitemap [L,R=302]
Da es der selbe Server ist bietet sich übrigens auch:
[code lang=apache]RewriteRule option=com_xmap /sitemap [L] [code]
an.
Hättest Du an den von mir angegebenen Stellen gelesen, dann hättest du das auch selbst rausgefunden...
_________________________________
Sorry, mein Fehler.
Leider funktioniert es mit der korrigierten Zeile aber trotzdem nicht. (Keine Umleitung)
Das Problem ist, dass die Sitemap unter den und anderen angegebenen kryptischen Adressen erreichbar ist (sofern option=com_xmap drinsteht) und somit für Google mehrere Seiten mit dem gleichen (aber falschen) Inhalt existieren.
Muss da ggfls., so wie dedlfix beschreibt, noch eine RewriteCond rein?
Ok. ich korrigiere die Kleinigkeit:
RewriteRule option=com_xmap http://www.snc-online.de/sitemap [L,R=302]
Da es der selbe Server ist bietet sich übrigens auch:
[code lang=apache]RewriteRule option=com_xmap /sitemap [L] [code]
an.
Hättest Du an den von mir angegebenen Stellen gelesen, dann hättest du das auch selbst rausgefunden...
_________________________________
Sorry, mein Fehler.Leider funktioniert es mit der korrigierten Zeile aber trotzdem nicht. (Keine Umleitung)
Das Problem ist, dass die Sitemap unter den und anderen angegebenen kryptischen Adressen erreichbar ist (sofern option=com_xmap drinsteht) und somit für Google mehrere Seiten mit dem gleichen (aber falschen) Inhalt existieren.Muss da ggfls., so wie dedlfix beschreibt, noch eine RewriteCond rein?
OK,
ich habe den Fehler.
Das Problem ist der Query String, der am Ende immer wieder hinzugefügt wird.
Mit einem ? am Ende der Ziel URL lässt sich das beheben.
Das funktionierende Ergebnis aus Euren Tipps sieht so aus:
RewriteCond %{QUERY_STRING} option=com_xmap
RewriteRule ^(.*)$ http://www.example.de/sitemap? [R=301,L]
Vielen Dank für die Hinweise,
Uwe
Om nah hoo pez nyeetz, snconline!
Es ist nicht notwendig, das komplette Vorposting in deiner Antwort unterzubringen. Bitte zitiere künftig nur das, worauf du dich konkret beziehst. Danke.
Matthias
OK, habe damit leider ein Folgeproblem bekommen - die eigentliche sitemap.xml wird natürlich auch umgeleitet.
Gibt's eine Möglichkeit diese auszuschließen?
Problem bei Joomla Xmap ist, dass sowieso ein Eintrag in der htaccess sein muss, damit die funktioniert.
Hier der Code:
#1. Umleiten der xmap query Fehler auf die Sitemap
RewriteCond %{QUERY_STRING} option=com_xmap
RewriteRule ^(.*)$ http://www.snc-online.de/sitemap? [R=301,L]
#2. Umleitung für xmap auf sitemap.xml für einige robots
RewriteCond %{REQUEST_URI} ^/sitemap.xml$
RewriteRule .* /index.php?option=com_xmap&sitemap=1&view=xml
Wenn ich bei #1. so was wie
RewriteCond %{QUERY_STRING} !xml
mit reinnehme, bekomme ich einen XML Fehler und die Datei kann nicht mehr via Stylesheet dargestellt werden.
Fehler beim Laden des Stylesheets: Ein XSLT-Stylesheet hat keinen XML-MIME-Typ:http://www.snc-online.de/index2.php?option=com_xmap&view=xslfile&tmpl=component
Hat jemand eine Idee?
Tach!
OK, habe damit leider ein Folgeproblem bekommen - die eigentliche sitemap.xml wird natürlich auch umgeleitet.
Gibt's eine Möglichkeit diese auszuschließen?
Ja, üblicherweise schließt man vorhandene Dateien und Verzeichnisse (gegebenenfalls auch Symlinks (mit -s)) von einer Umleitung aus:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
dedlfix.
Tach!
wenn ich das einfüge:
RewriteEngine On
RewriteRule option=com_xmap http://www.snc-online.de/sitemap [L,302]
oder wir beschrieben direkt:
option=com_xmap http://www.snc-online.de/sitemap [L,302]dann bekomme ich einen Fehler auf der gesamten Seite:
500 Internal Server Error
Klar, die letzte Zeile ist keine gültige Syntax, da fehlt eine Direktive. Die RewriteRule-Zeile ist auch falsch. Das 302 soll ein R=302 sein, um zu bewirken, dass ein Redirect mit Statuscode 302 und kein internes Umschreiben ausgeführt wird. Trotzdem funktioniert die so nicht, weil RewriteRule sich keine Querystrings anschaut. Das geht nur mit RewriteCond. Die Rule muss also auf alles matchen (oder auch nur auf bestimmte URLs) und die Cond schaut auf den Querystring. Außerden musst du gegebenenfalls aufpassen, dass du dir keine Endlosschleifen baust, wenn du das bereits umgeschriebene nicht vom erneuten Umschreiben ausnimmst.
dedlfix.
Noch ein Rat:
Frage nicht unter dem Firmenname und gib Adressen mit der Domain example.com an.
Jörg Reinholz
Funktioniert,
Vielen Dank!