MisterD: [mod_rewrite] ALLES umleiten auf start.php?page=$1

Hallo zusammmen!

Ich verusche seit einiger Zeit ALLES mit mod_rewrite umzuleiten. Vorher hatte ich einfach eine 404 Seite eingestellt doch dann bekommt die .php Seite die Post werte nicht mitgeteilt vom Browser.

Mein Zeil ist es das alles umgeleitet wird. Also example.com/abc.html genauso wie example.com/abc oder auch example.com/abc/

Und dann möchte ich in meiner PHP Datei später die angeforderte URL auslesen können um sie weiter zu verarbeiten.

Bei folgender Regeln (alle Dateien mit .html Endung) klappt es:
RewriteEngine On
RewriteRule (.*).html$ start.php?id=$1 [L]
Options +SymLinksIfOwnerMatch

Bei der auch:
RewriteRule (.*).html$ start.php?id=%{REQUEST_URI} [L]

Wenn ich aber jetzt das .html entferne, also das er alles umleitet, leitet er es zwar um doch die Variable die Übergeben wird ($1 oder %{REQUEST_URI}) steht nur start.php

Jemand eine Idee woran das liegt oder wie ich es ändern kann? Wäre euch sehr dankbar!

  1. RewriteRule (.*).html$ start.php?id=%{REQUEST_URI} [L]

    Wenn ich aber jetzt das .html entferne, also das er alles umleitet, leitet er es zwar um doch die Variable die Übergeben wird ($1 oder %{REQUEST_URI}) steht nur start.php

    Jemand eine Idee woran das liegt

    Weil dann wirklich alles abgefangen wird, einschließlich der Aufrufe von start.php. Du erzeugst damit eine Endlosschleife (die aber von mod_rewrite freundlicherweise abgefangen wird).

    Du möchtest nicht alles verarbeiten, sondern alles außer start.php, das geht in etwa so:

    RewritEngine on
    RewriteBase /
    RewriteCond %{REQUEST_URI} !^start.php
    RewriteRule .* start.php?id=%{REQUEST_URI}

    1. Klingt einleuchtend. Vielen Dank!
      Doch wenn ich das so einbaue kommt "500 Internat Server Error - The server encountered an internal error or misconfiguration and was unable to complete your request."

      Jemand ne Idee wo da der Fehler leigt?

      1. Moin Moin!

        Jemand ne Idee wo da der Fehler leigt?

        Steht im error_log auf dem Server.

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
        1. Steht im error_log auf dem Server.

          Es fehlte ein "e" beie Rewrite.
          Aber wenn ich das Script nutze bekomme ich statt der angeforderten Seite nur den Wert start.php zurück - jemand eine Idee woran das liegt?