snconline: htaccess Umleitungen

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

  1. 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

    Jörg Reinholz

    1. 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
      
      1. 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...

        Jörg Reinholz

        1. 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...

          Jörg Reinholz

          _________________________________
          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?

          1. 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...

            Jörg Reinholz

            _________________________________
            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

            1. 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

              --
              1/z ist kein Blatt Papier.

            2. 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?

              1. 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.

      2. 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.

  2. Noch ein Rat:

    Frage nicht unter dem Firmenname und gib Adressen mit der Domain example.com an.

    Jörg Reinholz

    1. Funktioniert,
      Vielen Dank!