Ankündigung

Einklappen
Keine Ankündigung bisher.

MOD_REWRITE - Hilfe, ich raff es nicht

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

  • MOD_REWRITE - Hilfe, ich raff es nicht

    Ich versuche mich gerade an mod_rewrite auf meinem Webspace in der .htaccess Datei. Dabei sollen folgende Anforderungen erfüllt werden:

    1. User gibt beispielsweise www.meinedomain.de/impressum ein --> index.php?seite=impressum
    2. Alle Aufrufe der Seite sollen immer auf die "https://www"-Variante geleitet werden

    Ich habe mir jetzt folgenden Code zusammengeschustert:

    RewriteEngine On

    # Nachfolgende Regel leitet alle Anfragen ohne www auf https://www. um
    RewriteCond %{HTTP_HOST} !^www\.meinedomain\.de$ [NC]
    RewriteRule (.*) https://www\.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    # Auffangregel für Anfragen http://www. --> diese wird auf https umgeleitet
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    # Abschlussregel
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([\w]+)/?([\w]+)? /index.php?seite=$1&unterseite=$2
    Die vorstehenden Regeln erfüllen eigentlich ihren Zweck und tun genau das, was ich wollte. Allerdings bin ich blutiger Anfänger was mod_rewrite anbelangt. Von daher schließe ich nicht aus, dass in dem bisschen Code schon riesige Sicherheitslücken klaffen. Eine solche Lücke habe ich schon entdeckt: gibt der User meinedomain.de/impressum ein, wird er auf https://www.meinedomain.de/impressum geleitet. Im Hintergrund wird für ihn unsichtbar dann die index.php?seite=impressum aufgerufen. Die Seite index.php ist quasi die Frame-Seite, in die dann die folgende Datei per include geladen wird: "/webseiten/impressum.php". Der User sieht weiterhin die "schöne" URL. Wenn ich nun jedoch im Browser die Adresse "www.meinedomain.de/webseiten/impressum.php" eingebe, wird mir diese Unterseite unter Umgehung der index.php direkt angezeigt - mit entsprechenden php-Fehlermeldungen, da diverse includes ins Leere laufen.

    Daher nun meine Fragen:

    1. Wie kann ich in der mod_rewrite verhindern, dass ein User die per include in die index.php zu ladenden Seiten direkt ansurft? Dies kann zwar nur, wer den Link kennt, schön ist es dennoch nicht. Ich könnte zwar die include-Dateien in ein Verzeichnis oberhalb des Web-Roots packen, aber ich würde das hier gerne per mod_rewrite hinbekommen.
    2. Sind in meinem Code oben noch weitere Bugs enthalten?
    3. Kann ich den Code noch kompakter schreiben?

    Besten Dank schon mal!

Lädt...
X