Ankündigung

Einklappen
Keine Ankündigung bisher.

Weiterleitung ohne Änderung in der URL-Zeile des Browsers

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Weiterleitung ohne Änderung in der URL-Zeile des Browsers

    Hallo zusammen,

    mein Problem hat zwar nicht direkt etwas mit PHP zu tun, allerdings habe ich dafür nirgends so ein kompetentes Forum gefunden wie hier. Ich hoffe ihr verzeiht mir also diese Frage.

    Ich möchte via .htaccess eine Weiterleitung innerhalb der selben Domain machen, ohne dass der User etwas davon mitbekommt. Er soll also www.example.org/link1 aufrufen, und dabei auch www.example.org/index.html?page=link1 weitergeleitet werden. Der Server unterstützt kein mod_proxy, mod_rewrite ist aktiviert.

    Ich habe bereits vieles ausprobiert was man sonst so im Internet findet, allerdings ohne Erfolg. Sämtliche Weiterleitungen funktioieren nur, wenn nach der RewriteRule ein [R] folgt, was dann aber die Weiterleitung für den User sichtbar macht, was ich aber natürlich vermeiden will.
    Weiß hier jemand eine Lösung?

    Vielen Dank schon mal im Voraus!

    Thomas


  • #2
    Moderation: Verschoben nach Server, Hosting und Workstations

    nur spezifisch oder allgemein was hinter der domain kommt auf den URL-Parameter "page" legen ?

    Wichtig: Bitte nur example.org/.com/.de/.net benutzen, dir gehört sicherlich nicht die abc-domain.
    PHP.de Gitter.im Chat - Meine öffentlichen Bookmarks ← Ich habe dir geholfen ? Beschenk mich.

    Kommentar


    • #3
      Klingt als hättest Du den Apache? Letztendlich geht es Dir um SEO freundliche URLs oder auch sprechende URLs anstatt irgendwelche parametrisierten URLs.

      Ungetestet mangels Apache...

      Code:
      RewriteEngine On
      RewriteBase /
      RewriteRule ^([A-Za-z0-9_-]+)/?$ /index.php?page=$1 [QSA]
      Gruß, Ulf
      PHP-Manual ¡ mysql_* ist veraltet ¡ Debugging: Finde DEINE Fehler selbst ¡ Passwort-Hashing ¡ Prepared Statements

      Kommentar


      • #4
        Hallo Ulf,

        danke für die schnelle Antwort. Ja, auf dem Server läuft Apache. mod_proxy ist nicht installierbar weil das der Hoster bei diesem Vertrag nicht anbietet.

        Deine Weiterleitung funktioniert, nur leider wird die tatsächliche Adresse, also die nicht-SEO-freundliche, trotzdem angezeigt. Hast du noch eine Idee?

        @tr0y: In manchen Fällen bräuchte ich schon was Spezifisches, also einfach den Parameter nach der Domain hinten angehängt. Die Links haben alle in etwa die Struktur www.example.de?index.html?page=[Param].
        Und sorry, ich wusste ja nicht dass es die vorherige Domain tatsächlich gibt.

        Kommentar


        • #5
          Na dann.

          Die Ausnahmen als Condition-Rule-Paare vor der von mir beschriebenen letzten ( [L] ) Condition-Rule-Paarung definieren, fertig.

          Code:
          RewriteEngine On
          
          RewriteBase /
          
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteRule ^(.*)$ index.html?page=$1 [L,QSA]
          http://httpd.apache.org/docs/current...ml#rewritecond
          http://httpd.apache.org/docs/current...ml#rewriterule
          PHP.de Gitter.im Chat - Meine öffentlichen Bookmarks ← Ich habe dir geholfen ? Beschenk mich.

          Kommentar


          • #6
            Super, danke, das hat zumindest teilweise geholfen. Ich habe ein Testverzeichnis auf dem Server angelegt und dort OHNE CMS eine Weiterleitung gemacht, funktioniert top. Allerdings läuft auf dem Server Contao, und sobald ich das da probiere bekomme ich eine 404. Erst wenn ich dem [L,QSA] ein R anhänge funktioniert die Weiterleitung wieder, dann allerdings mit geänderter Adresszeile im Browser.
            Die verwendete Contao-Version ist 3.4.

            Kommentar

            Lädt...
            X