stiller: Dynamische URL 301 Weiterleitung mit htaccess

Hallo

Ich habe eine URL www.domain.de/www/?MAIN_RUB_ID=51 die ich gerne umleiten möchte auf den Root. Nun habe ich folgendes mod_rewrit geschrieben:RewriteRule ^www http://www.bexpo.ch [L,R=301] welche mir alle Links innerhalb www umleiten. Allerdings bleibt die Variable stehen. Wie kann ich die Variable löschen?

Danke für eure Hilfe.

Gruss
Thomas

  1. http://www.bexpo.ch

    behauptet über sich selbst in den HTTP-Antwort-Headern: "Server: Microsoft-IIS/6.0" und auch die Fehlerseite sieht aus wie eine von einem Uralt-IIS.

    Demnach kann das mit htaccess nichts werden.

    Jörg Reinholz

    1. Wieso auch immer htaccess?
      In meiner htaccess stehen relativ allgemeine Sachen. So leite ich jede Anfrage auf ein bestimmtes Script um. In diesem Script wird dann auch unter anderem eine Weiterleitung eingeleitet.

      Vorteil:

      • Die Seiten die umgeleitet werden sollen können in einem Array bzw. einer Datenbank stehen. Ergo kann der User diese Selbst angeben.
      • Man kann mitlogen wann und wie oft auf eine andere Seite umgeleitet wird. Eventuell werden einige Weiterleitungen niemals benutzt.
      • Durch den Log kann man auch sehen ob die Weiterleitung erfolgreich war.
      • Htaccess Datei ist sauber und übersichtlich.

      Einziger Nachteil der mir spontan einfallen würde, wäre eine etwas längere Ladezeit.

      Unser ehemaliger Entwickler hat auch alles in die htaccess reingepackt. Da waren irgendwann 50 und mehr Weiterleitungen drin. "Keine Ahnung ob man dies und das noch braucht", war meistens die Aussage. So kam dann ständig ein Portalmanager und meinte dass Link XY nicht funktioniert. Wie auch, man kann nicht bei jeder Änderung 50 URL durchtesten.

      Gruß
      htaccess befreiender
      T-Rex

      1. Tach!

        man kann nicht bei jeder Änderung 50 URL durchtesten.

        Man kann. Dazu gibt es Test-Tools à la Selenium. Selbst mit einem simplen selbst geschriebenen Script, das GET-/HEAD-Requests auf die URLs abfeuert und den Statuscode prüft, kann man.

        dedlfix.

        1. Joa alles bekannt. Und wer legt die Tests an? Und wie lange dauert das, die tests an zu legen? Außerdem müssen auch automatische Tests nach jeder Änderung durchgeführt werden.
          Und das alles nur, damit man die htaccess weiter zumüllen kann.

          Gruß
          htaccess Befreiungskämpfer
          T-Rex

          1. Tach!

            Und wer legt die Tests an? Und wie lange dauert das, die tests an zu legen?

            Die Frage ist, was ist dir mehr Wert, Qualität oder Quantität.

            Außerdem müssen auch automatische Tests nach jeder Änderung durchgeführt werden.

            Test müssen auch nach so nach jeder Änderung durchgeführt werden. Du willst nicht behaupten, dass ihr arbeitet, ohne die Ergebnisse zu kontrollieren. Die Automatik an dieser Stelle hilft, die Test schnell durchführen zu können, um so die Nebenwirkungen der eigenen Arbeit besser beachten zu können.

            Und das alles nur, damit man die htaccess weiter zumüllen kann.

            Zumüllen kann man auch die anderswo gepflegte Weiterleitungssammlung.

            dedlfix.

            1. Tach!
              Zumüllen kann man auch die anderswo gepflegte Weiterleitungssammlung.

              Was unbestritten gilt!

              Nur sollte man die Frage stellen, ob man Daten (Hier grob: Zuordnung vermeintlicher Ressourcen zu tatsächlichen Ressourcen) in einer Server-Konfigurationsdatei unterbringt. Darüber (genauer, ob das richtig ist) lässt sich nämlich "trefflich streiten" - und etwas vom Zaun brechen, was die "Netzgemeinde" seit ein paar Jahren als "Glaubenskrieg" bezeichnet.

              Die weitere Möglichkeit einer (teilweise) automatisch generierten .htaccess hatte ich bereits genannt. Auch in dem Fall muss man nicht "Test [...] nach jeder Änderung" durchführen und die Ergebnisse kontrollieren. Man hat ja (hoffentlich) ordentlich programmiert und das getestet...

              Jörg Reinholz

            2. Die Frage ist, was ist dir mehr Wert, Qualität oder Quantität.

              Nein die Frage stellt sich in dem Zusammenhang nicht.

              Was die Tests angeht würde ich bei der Umleitung eine Prüfung einbauen. Das sieht dann ungefähr so aus

              //--- Prüfen ob URL einen 200er Statuscode Liefert
              if( true )
              umleiten
              else
              wenn code >=400 ist, log eintrag dass diese Umleitung nicht funktioniert und e-mail an Admins
              else
              wenn code >= 300 (dann ist wird nochmals weiter geleitet)
              sonderfall, keine ahnung was dann passieren soll

              Man braucht also keinerlei Testtools. Die Tests werden beim konfigurieren des Systems quasi gleich mit erledigt.
              Zudem hat man beide Seiten der Medaille, die URL welche weiter geleitet werden soll und die URL die es nicht gibt. Bei der htaccess Lösung hätte man nur die URL welche es nicht gibt (oder?).

              Zumüllen kann man auch die anderswo gepflegte Weiterleitungssammlung.

              Joa, wobei ich eine Tabelle als sauberer Empfinde als eine überfüllte Datei. Zumal die Einträge in der htaccess Datei unnötig sind, wie ich hoffe darlegen konnte.

              Gruß
              Testprogramm ausrottender
              T-Rex

          2. [T-Rex] Wie auch, man kann nicht bei jeder Änderung 50 URL durchtesten.
            [dedlfix] Man kann. Dazu gibt es Test-Tools
            [T-Rex] Joa alles bekannt. Und wer legt die Tests an? Und wie lange dauert das, die tests an zu legen?

            [Nur damit die Nachwelt weiß, worum es geht.]

            Ich sehe das so, dass das Wort "kann" nicht wörtlich, sondern in Kontext der Aussage gesehen werden sollte. T-Rex meinte meinte mit "kann nicht" hier doch offensichtlich, es sei ungünstig oder meinetwegen teuer.

            Ich selbst halte die Sachfrage übrigens für "nicht entscheidungsreif", weil die "Umstände des Einzelfalls" nicht bekannt sind (und bitte im gleichen Atemzug um Entschuldigung für das "Juristendeutsch").

            Zum Vorschlag von T-Rex:

            Wieso auch immer htaccess?
            In meiner htaccess stehen relativ allgemeine Sachen. So leite ich jede Anfrage auf ein bestimmtes Script um. In diesem Script wird dann auch unter anderem eine Weiterleitung eingeleitet.

            Ja, in einigen (den meisten!) meiner Projekte mache ich das auch so. Will ich z.B. nur "sprechende URL" dann werde ich die htaccess nicht bemühen um jeden einzelne URL umzubauen oder gar umzuleiten. Ein solcher Automatismus gehört meiner Ansicht nach nicht in die .htaccess, sondern in die Logik z.B. des CMS (des "DMS", des Shops ... oder was auch immer). Wobei natürlich zunächst ein grundlegender Eintrag in der Serverkonfiguration nötig ist. Die einzelnen Items kann(sollte) man dann wieder in einer Konfigurationsdatei (die muss keine .ini sein) speichern, denn das sind Daten die man tatsächlich nicht ausgerechnet in einer .htaccess ablegen sollte.

            Weiter kann man natürlich fragen wieso denn dieser Automatismus nicht auch die rewrite-rules in der .htaccess definiert, also in diese Datei schreibt. Und tatsächlich habe ich auch schon Skripte geschrieben, die genau das tun - Allerdings in einem anderen Zusammenhang als die hier [wohl] gegenständliche "Inhaltssteuerung".

            Jörg Reinholz

    2. Hallo Jörg

      http://www.bexpo.ch

      behauptet über sich selbst in den HTTP-Antwort-Headern: "Server: Microsoft-IIS/6.0" und auch die Fehlerseite sieht aus wie eine von einem Uralt-IIS.

      Demnach kann das mit htaccess nichts werden.

      Jörg Reinholz

      Danke für deine Antwort. Komisch, denn htaccess funktioniert schon und übers Control-Panel vom Hoster gibt's sogar die Option dafür. Ich habe z.b. folgender Eintrag der einwandfrei funktioniert:

      Options +FollowSymlinks  
      RewriteEngine on  
      rewriterule ^www/index.php(.*)$ http://www.bexpo.ch/index.php$1 [r=301,nc]
      

      eben nur die Umleitung wenn kein index.php steht z.b. http://www.bexpo.ch/www/?MAIN_RUB_ID=47&subcatid=53 geht nicht, dafür suche ich eine Lösung da Google die alte Seite schön katalogisiert hat und die Links ohne index.php ausgibt.

      Danke und Gruss
      Thomas

      1. http://www.bexpo.ch

        behauptet über sich selbst in den HTTP-Antwort-Headern: "Server: Microsoft-IIS/6.0" und auch die Fehlerseite sieht aus wie eine von einem Uralt-IIS.

        Demnach kann das mit htaccess nichts werden.

        Danke für deine Antwort. Komisch, denn htaccess funktioniert schon und übers Control-Panel vom Hoster gibt's sogar die Option dafür.

        Tja. Dann werden auf dem Server entweder die Antwort-Header verfälscht. (hier zu bestaunen) oder www.bexpo.ch ist nicht der Server, den Du meinst.

        Jörg Reinholz