Powl: mod_rewrite

Beitrag lesen

Hallo,

www.meineseite.de?seite=home <<<steht als URL da
www.meineseite.de/home <<<<soll dort stehen

Ohne sicher zu wissen, ob das die optimale Lösung ist, funktionieren tut es jedenfalls:

  
RewriteEngine on #ist denke ich klar  
RewriteBase /    #da gehört das Verzeichnis hin, für das die Regeln gelten sollen, in dem Fall root  
  
RewriteCond %{SCRIPT_FILENAME} !-f #Wenn der request nicht auf eine existiente Datei zielt...  
RewriteRule ^(.*)\..?htm.?$  /script.php?seite=$1 [L] #...wird aus /foo.?htm? -> /script.php?page=foo  
#somit wird bar.html trotzdem aufgerufen, wenn es existiert!  
#dann weiter:  
RewriteCond %{SCRIPT_FILENAME} !-f #Request ist keine existierende Datei...  
RewriteCond %{SCRIPT_FILENAME} !-d #...und kein existierendes Verzeichnis, dann:  
RewriteRule ^(.*)$ /main.php?page=$1 [L] #wird aus /foo -> /script.php?seite=foo  

Vielleicht geht es auch eleganter, daß würde ich dann selbst gerne wissen ;)
Aber es ist möglich mit /foo, foo.?htm? (also shtm, shtml, xhtm, xhtml u.s.w.], die entsprechende Seite aufzurufen.
Durch die RewriteConditions bleibt es aber trotzdem möglich in vorhanden Verzeichnisse zu wechseln, bzw. statische URL's aufzurufen.
Für Deinen Fall, wenn Du die Seiten nicht auch mit Endung erreichen willst, kann Du eigentlich die erste RewriteCond und RewriteRule löschen. Der untere Block würde dann reichen.

netten Tag
^da Powl

--
===============================
powl.hat-gar-keine-homepage.de/