mod_rewrite: Mehrere RewriteRules

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • mod_rewrite: Mehrere RewriteRules

    Hallo,

    ich beschäftige mich zum ersten mal mit mod_rewrite und habe ein
    Problem mit der Kombination von mehreren RewriteRules.

    Ich habe bei mir eine Community-Software installiert,
    bei der schon eine .htacces-Datei mit folgendem Inhalt dabei war:
    Options +FollowSymLinks
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule .+ - [L]
    RewriteRule .* rewrite_name.php [L]

    Hierdurch werden den dynamischen Profil-Seiten der Mitglieder
    die Mitgliedsnamen als Dateinamen zugewiesen.

    Ich möchte nun zusätzlich von mir selbst erstellte PHP-Seiten
    mit dem Format dateiname.php?s=0 zu dateiname-0.htm umschreiben lassen
    und habe mir dazu folgende RewriteRule von so einem Tool erstellen lassen:
    RewriteRule dateiname-(.*)\.htm$ /dateiname.php?s=$1

    Jezt habe ich das Problem, dass diese RewriteRule nicht funktioniert,
    wenn ich sie einfach in die vorhandene .htacces-Datei vor oder hinter
    dem schon vorhandenen Code einbaue. Allein funktioniert sie wunderbar.


    Ich wäre sehr dankbar, wenn mir hier jemand weiterhelfen könnte.
  • Hi,

    die Regel muss auf jeden Fall vor deine anderen Regeln und du musst sie mit dem tag "[L]" für LAST versehen.

    Ansonsten wird zuerst die Regeln angewendet und danach die weiteren Regeln (und diese holen ja alles)

    Resultat (ungetestet):

    Quellcode

    1. Options +FollowSymLinks
    2. RewriteEngine on
    3. RewriteRule dateiname-(.*)\.htm$ /dateiname.php?s=$1 [L]
    4. RewriteCond %{REQUEST_FILENAME} -f [OR]
    5. RewriteCond %{REQUEST_FILENAME} -d
    6. RewriteRule .+ - [L]
    7. RewriteRule .* rewrite_name.php [L]