Nad Flanders: Problem mit .htacess und rewrite einer Url

Hi,

ich möchte gerne folgende Url:

http://www.meineUrl.de/abc/lang/de

in:

http://www.meineUrl.de/abc

umschreiben, sprich exakt diesen Part:

/lang/de

wegkürzen. Auch nur exakt diesen sollte die Url zum Beispiel wie folgt sein:

http://www.meineUrl.de/abc/lang/en

Soll nichts geändert werden. Selbstverständlich habe ich es auch schon selbst probiert:

RewriteRule   ^(.*)/lang/de$  /lang  [NC]

Leider funktioniert es so nicht. Ich würde mich über direkte Hilfe freuen.

Danke im Vorraus

  1. Hallo Nad,

    ich möchte gerne folgende Url: http://www.meineUrl.de/abc/lang/de

    irgendeinen Ursprung müssen diese URLs ja haben. Nun ist die tatsächliche Frage, warum auf /abc/lang/de Verwiesen wurde, wenn die Ressource unter /abc zu finden ist. Bei diesem Gedanken ist auch nicht abzusehen, dass es hier tatsächlich einer Serverkonfiguration bedürfte. Es ist erstmal nur eine Sache der Projektverwaltung im Sinne einer Strukturierung. Erhelle also bitte, warum Du die Ressourcen nicht unter den Verweisen referenzieren kannst, wo sie tatsächlich zu finden sind!

    [in] http://www.meineUrl.de/abc umschreiben...

    Hier lässt Du völlig offen, warum es Dir geht. Soll dies nur serverintern geschehen, oder geht es Dir um die Anzeige der Adresszeile im Browser?

    Von diesen Gesichtspunkten hängt dann ab, was man für Dich tun kann.

    Gruß aus Berlin!
    eddi

    1. Hallo Eddi,

      das Problem ist, dass ich diese Funktion nutze, um eine Seite in verschiedenen Sprachen darzustellen.

      Den deutschen Inhalt kann man sowohl unter dem Präfix /lang/de also auch ohne diesen Präfix erreichen, sprich ein und den selben Inhalt unter zwei Url's.
      Genau das möchte ich aber vermeiden, da Google das nicht so mag.

      Deswegen möchte ich dir Url's mit dem Deutschen Präfix (lang/de) gerne um diesen kürzen.

      Ich hoffe ich ein wenig Licht in's Dunkel gebracht.

      Grüße,
      Nad

      1. Re:

        Den deutschen Inhalt kann man sowohl unter dem Präfix /lang/de also auch ohne diesen Präfix erreichen, sprich ein und den selben Inhalt unter zwei Url's.

        Dann lösche/ersetze einfach alle Verweise, die auf /lang/de enden.

        Genau das möchte ich aber vermeiden, da Google das nicht so mag.

        Teile google explizit mit, dass es (nunmehr) nur einen Inhalt gibt:

        [link:http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectmatch@title=RedirectMatch] gone .*/lang/de$

        Deswegen möchte ich dir Url's mit dem Deutschen Präfix (lang/de) gerne um diesen kürzen.

        Ja, ja - Du laborierst aber an den Symptomen nicht an der Ursache, wenn Du mod_rewrite nutzt und die armen CPUs unnötig quälst, statt Dich einer (Deiner Meinung nach) google-freundlichen Projektstrukturierung bedienst.

        Gruß aus Berlin!
        eddi

        1. Nein.

          Ich möchte wie gesagt einfach nur die Url um diesen Präficx kürzen: Nichts Anderes.

          Der Hintergund. Diese Funktion wir durch ein Plugin erzeugt, auch ließen sich die Dateien umschreiben - ebenfalls keine Problem.

          Allerdings müsste ich das dann nach jedem Update machen und genau darauf habe ich keine Lust.

          Auch bin ich mir sicher, dass es die CPU vom Server verkraften wird.

          Grüße,
          Nad

          1. Re:

            [link:http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectmatch@title=RedirectMatch] gone .*/lang/de$
            Ich möchte...

            Und ich möchte nicht mehr, als dass Du Dir das Beispiel ansiehst, den Verweis folgst, nachdenkst und für Deine Aufgabenstellung abänderst. Dann kannst Du von mir aus so oft links blinken und rechts abbiegen, wie Du willst - oder was auch immer Dir Dein Plugin gebietet.

            Gruß aus Berlin!
            eddi

            1. ....ich habe doch bereits im ersten Post geschrieben, was ich möchte und meinen Ansatz dazu gepostet....

              RewriteRule   ^(.*)/lang/de$   [NC]

              warum sagst du mir nicht einfach, wo der Fehler liegt?

              Auch kann ich mit dem Link von dir ehrlich gesagt nicht viel anfangen, ich habe es probiert, und bekomme einen Verweis, dass es die Seite nimmer gibt....

              Das wollte ich nicht....

              1. Re:

                ....ich habe doch bereits im ersten Post geschrieben, was ich möchte und meinen Ansatz dazu gepostet....

                Formal betrachtet ist diese Ansicht von Deiner Warte aus zwar nachvollziehbar, sie nimmt nur stur keinen Anstoß an meine direkte Reaktion. Ich hatte um Klärung gebeten. Sei's drum. Im weiteren Verlauf ist ja nun deutlich geworden, was Du tatsächlich bezwecken willst. Du willst ein google-freundliches Web.

                warum sagst du mir nicht einfach, wo der Fehler liegt?

                Oh, richtig; bitte entschuldige: Du hast ein grundsätzliches Verständnisproblem dessen, was Du da tun willst. Es lässt sich nicht mittels .htaccess lösen.

                Fangen wir also mit den Grundlagen an. Was sagt eigentlich google selbst zum Thema:

                Richtlinien für Webmaster und Google-freundliche Websites

                Nirgends ist etwas davon zu lesen, dass die lokale URL /abc/lang/de schlechter für google sei als /abc.

                Auch kann ich mit dem Link von dir ehrlich gesagt nicht viel anfangen, ich habe es probiert, und bekomme einen Verweis, dass es die Seite nimmer gibt....

                Was passiert, wenn ein Client eine Ressource haben will? Er sendet einen Request und bekommt einen Response (Wikipedia: Funktionsweise HTTP).

                Sehen wir uns doch mal an, was passiert, wenn ein Browser oder ein Crawler (Client) auf einen Redirect trifft:

                Request:

                GET /abc/lang/de HTTP/1.1
                      Host: www.example.net

                Response:

                HTTP/1.1 302 Found
                      Location: http://www.example.net/abc
                      Content-Length: 0

                Daraufhin muss der Client nochmals einen Request senden. Statt also einer Anfrage muss er nun zwei Anfragen stellen.

                Request:

                GET /abc HTTP/1.1
                      Host: www.example.net

                Response:

                HTTP/1.1 200 OK
                      Content-Length: (viele Bytes)

                (Inhalt)

                Wenn Du jetzt immer noch der Meinung bist, dass Du mit einem Redirect, und der ist hier, ob Modul alias oder rewrite des Apachen, jedenfalls angezeigt, etwas google-freundliches tust, hast Du das Beispiel unter RedirectMatch zu verstehen, ob Dir mein Beispiel mit explizit gesetztem HTTP-Statuscode da weiterhilft oder nicht.

                Gruß aus Berlin!
                eddi

                1. Nirgends ist etwas davon zu lesen, dass die lokale URL /abc/lang/de schlechter für google sei als /abc.

                  Hier mal was zum Thema Duplicate Content.

                  http://www.goldmann.de/google-duplicate-content-ist-ein-problem_tipp_198.html

                  Und zu den Request, korriegiere mich, wenn ich falsch leige, aber alle moderne CM'S arbeiten inzwischen mit mod_rewrite...

                  1. ich habs's:

                    RedirectMatch (.*)/lang/de$ http://www.example.de$1

                    Du hast mir einen Link zu match gone geschickt, und nicht zu redirect match...

                    Trotzdem Danke

                  2. Re:

                    Nirgends ist etwas davon zu lesen, dass die lokale URL /abc/lang/de schlechter für google sei als /abc.
                    Hier mal was zum Thema Duplicate Content. http://www.goldmann.de/google-duplicate-content-ist-ein-problem_tipp_198.html

                    »Schöner Artikel«. Wie dieser selbst zugibt, basieren die Grundlagen dazu nur auf Mutmaßungen. Ich sehe jedenfalls nicht, wie ein Dokument, das mit 152 Fehlern vom XHML-Standard abweicht und somit das Auslesen für einen google-crawler erschwert, Dich über Suchmaschinenoptimierung informieren könnte.

                    Und zu den Request, korriegiere mich, wenn ich falsch leige, aber alle moderne CM'S arbeiten inzwischen mit mod_rewrite...

                    Kein CMS verwendet aber auf generierten Dokumenten Verweise mit URLs wie /?var1=param1&var2=param2, die erst vom Server per Redirect zu /param1_param2.html umgewandelt werden. Da, Nad, machst Du den entscheidenden Denkfehler. Du hast URLs der Form /abc/lang/de, die erst vom Server zu /abc umgewandelt werden müssen, was völlig sinnfrei ist und einem Linksblicken bei Rechtsabbiegen entspricht. Welche Verweise wird aber google in suchergebnissen auflisten? Die die im Dokument stehen, und da steht, soweit ich Dich verstanden habe, bei Dir /abc/lang/de. Warte also das nächste "Allegra Update" googels ab, bis solches Vorgehen von google ebenfalls abgestraft wird.

                    Soweit in den Artikeln von google zu lesen war, macht es keinen Unterschied, ob URLs nun auf /lang/de enden oder nicht. Wenn Du also wirklich etwas tun willst, sorgst Du dafür, dass projketweit alle Verweise immer nur entweder auf /abc oder auf /abc/lang/de enden.

                    Jedenfalls aber wirst Du, selbst wenn an Deinem »Duplicate Content«-Problem etwas dran sein sollte, dieses nicht durch HTTP-Status 302 los. Das schreibt auch so Dein Artikel, auf dem Dein ganzer Ansatz fußt.

                    Gruß aus Berlin!
                    eddi

                  3. Moin!

                    Hier mal was zum Thema Duplicate Content.

                    http://www.goldmann.de/google-duplicate-content-ist-ein-problem_tipp_198.html

                    Ja, das Posting verbreitet das Märchen vom bösen "Duplicate Content". Da schieben ein paar Linkfarm-Anbieter Panik, weil ihre multiplen Suchergebnisseiten von Google endlich auf EIN Suchergebnis zusammengeschrumpft wird (alle anderen Fundstellen sind ja doppelt), und schon entstehen solche Gerüchte wie "Google bestraft doppelten Content".

                    Wie Google offiziell mitteilt, wird doppelter Content eben gerade NICHT bestraft.

                    Doppelter Content auf fremden Domains darf garnicht zur Bestrafung führen, weil diese Fremddomains ja nicht zwingend unter der eigenen Kontrolle des jeweiligen Content-Anbieters liegen, sondern böswillig kopiert wurden. Wer die bessere Verlinkung hat, wird weiter oben angezeigt. In der Regel ist das die Domain, die den Content als erste hat.

                    Doppelter Content auf zwei eigenen Subdomains der gleichen Domain (Klassiker: example.com und www.example.com) kann Google ebenfalls sehr leicht identifizieren. Die IPs der DNS-Einträge zeigen auf den gleichen Server, welcher auf gleiche URLs mit den gleichen Daten antwortet. Welche Domain hier in den Suchergebnissen angezeigt wird, ist entweder zufällig, oder die mit mehr Links. Google filtert die Redundanz bei der Suchergebnisseite heraus und zeigt nicht einmal example.com und dann www.example.com an.

                    Doppelter Content auf zwei Seiten mit unterschiedlicher URL schließlich ist für Google etwas blöd zu behandeln. Klassiker hierfür wäre z.B. im Blog die Startseite mit den aktuellsten Artikeln, die parallel auch noch im Archiv auftauchen (Archiv-URL), sowie auf der seiten-internen Suche. Gleicher Textinhalt, aber unterschiedliche URLs und meist auch unterschiedliches Design bzw. dekorierendes HTML, also keine komplette Identität.

                    http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html

                    Und zu den Request, korriegiere mich, wenn ich falsch leige, aber alle moderne CM'S arbeiten inzwischen mit mod_rewrite...

                    Können, müssen aber nicht.

                    Und es wäre im Sinne einer vernünftigen URL-Benutzung in deinem konkreten Anwendungfall auch schlauer, nicht /abc/lang/de zu eliminieren, sondern /abc/. Weil dann jede unterschiedliche Sprache gleichartige URLs hat.

                    - Sven Rautenberg

      2. Moin!

        Den deutschen Inhalt kann man sowohl unter dem Präfix /lang/de also auch ohne diesen Präfix erreichen, sprich ein und den selben Inhalt unter zwei Url's.
        Genau das möchte ich aber vermeiden, da Google das nicht so mag.

        Google hat kein Problem mit "Duplicate Content". Insbesondere wird solcher nicht bestraft.

        Google hätte es nur gerne so, dass es in irgendeiner Art Hinweise bekommt, welche von mehreren gleichartigen URLs denn die primär zu verwendende ist, damit die Suchergebnisseite genau diese URL zeigen kann, und alle anderen URLs nur auf Anforderung (dieser "Weitere Ergebnisse von example.com anzeigen..."-Link).

        Für sowas gibts von Google sogar einen sehr kompatiblen Vorschlag: <link rel="canonical"> Details dazu stehen in Googles Webmaster-Blog: http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html

        Deswegen möchte ich dir Url's mit dem Deutschen Präfix (lang/de) gerne um diesen kürzen.

        Du willst die URL aber im Browser kürzen. Und dann auf die Langform leiten. Das ist nicht das, was du bislang geschrieben hast.

        Und es ist überflüssig - jedenfalls wegen Google.

        - Sven Rautenberg