mm5: mod_rewrite URL ändern

Hallo,

ich möchte gerne mit mod_rewrite eine URL ändern.

Wenn seite.php aufgerufen wird, soll diese zu seite.html mit den Parametern umgeleitet werden. Die Seite heißt aber im FTP seite.php, die seite.html ist somit keine vorhandene Seite.

Hat jemand einen Tipp, wie man das realisieren kann ohne die vorhandenen Seiten ändern zu müssen?

  1. Moin!

    Wenn seite.php aufgerufen wird, soll diese zu seite.html mit den Parametern umgeleitet werden. Die Seite heißt aber im FTP seite.php, die seite.html ist somit keine vorhandene Seite.

    Hm, eigentlich willst du es andersrum: Wenn seite.html aufgerufen wird, soll tatsächlich seite.php ausgeführt werden. Oder?

    Hat jemand einen Tipp, wie man das realisieren kann ohne die vorhandenen Seiten ändern zu müssen?

    Welchen Vorteil versprichst du dir von der Aktion insgesamt? Abhängig davon sieht nämlich die Lösung durchaus unterschiedlich aus.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hallo,

      ich möchte, dass nicht erkennbar ist, dass es sich um php Seiten handelt. Als neutrale Endung würde ich deshalb html angeben.

      Im Script und in den Links stehen die php Seiten, dieses möchte ich jetzt nicht überall ändern.
      Aufgerufen wird jetzt php, dieses soll in html geändert werden aber im FTP ist dann wieder die php seite vorhanden.

      Ist das so möglich?

      1. Moin!

        ich möchte, dass nicht erkennbar ist, dass es sich um php Seiten handelt. Als neutrale Endung würde ich deshalb html angeben.

        Dann mußt du alle Links in allen Seiten auf ".html" abändern, denn ansonsten wäre es ja wieder erkennbar. Da Suchmaschinen deine bisherigen Seiten schon indiziert haben, mußt du außerdem eine Weiterleitung auf die .html-Seiten einfügen.

        Und als serverseitige Lösung gibts dann zwei Möglichkeiten: Entweder du benennst alle Seiten tatsächlich in .html um, und läßt diese Dateiendung auch von PHP parsen. Oder du setzt halt rewriting ein, um intern von .html auf .php zu kommen.

        Trotzdem wird dir das u.U. keine "Unsichtbarkeit" von PHP garantieren, da der Server das Vorhandensein von PHP in den HTTP-Headern signalisieren kann.

        Im Script und in den Links stehen die php Seiten, dieses möchte ich jetzt nicht überall ändern.

        Tja, das ist dann schlecht. Damit das so funktioniert, müßtest du zuerst einen Redirect von .php auf .html erzeugen, und dann den neuen Request auf .html wieder intern auf .php umschreiben. Effektiv verschlechterst du dadurch die Geschwindigkeit deiner Webseite wegen dieser unnötigen Redirects, und du belastest auch den Server unnötigt, weil ohne Notwendigkeit die doppelte Anzahl an Seitenrequests anfällt.

        Aufgerufen wird jetzt php, dieses soll in html geändert werden aber im FTP ist dann wieder die php seite vorhanden.

        Ist das so möglich?

        Dein Vorhaben ist eigentlich ziemlich unsinnig. Wenn du dir nur wenig Arbeit machen willst, verschlechterst du deine Seite erheblich. Und viel Arbeit machen willst du dir nicht. Also mach dir ab Besten gar keine Arbeit, denn dieses kleine Detail der Dateiendung ist wirklich nebensächlich.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
  2. Die Seite heißt aber im FTP seite.php, die seite.html ist somit keine vorhandene Seite.

    Hat jemand einen Tipp, wie man das realisieren kann ohne die vorhandenen Seiten ändern zu müssen?

    Die Endung .html hat gegenüber .php nach außen hin grundsätzlich keinen Vorteil, das gilt insbesondere in Bezug auf die Suchmaschinenpositionierung, die in diesem Zusammenhang gerne angeführt wird (wer Gegenteiliges behauptet, hat entweder keinen ordentlichen Nachweis geführt oder ein Problem mit dem Seiteninhalt, nicht mit der Endung).

    Falls Du trotzdem glaubst, es müsse sein: Für /pfad/zu/seite.html gehört in /pfad/zu/.htaccess

    RewriteEngine on
    RewriteBase /pfad/zu
    RewriteRule ^seite.html$ seite.php

    Nächstes Mal bitte die Anleitung lesen.

    1. Hallo,

      ich habe das eben ausprobiert.

      Das hatte ich auch schon aber bei den Links ist immer die php Seite angegeben. Das sollte in html geändert werden. Jetzt kann die php Seite zusätzlich als html aufgerufen werden.