RewriteRule für dynamische Seiten

Apache, Lighttpd, nginx, Cherokee
Post Reply
freeze
Posts: 41
Joined: 2002-07-15 08:18
Location: Oberhausen
 

RewriteRule für dynamische Seiten

Post by freeze »

Zwecks Suchmaschinenoptimierung werden die statischen Urls per mod_rewrite für PHP aufbereitet:

Code: Select all

# /pfad/zum/artikel/23.html -> index.php?PATH=/pfad/zum/artikel/23
RewriteRule ^/(.*).html$ /index.php?PATH=$1 [QSA,L]

# /pfad/zur/kategorie/ -> index.php?PATH=/pfad/zur/kategorie/index
RewriteRule ^/(.*)/$ /index.php?PATH=$1/index [QSA,L]
Der Pfad wird dann in der index.php aufgedröselt und etwas sinnvolles wird angezeigt. So weit, so gut.

Problem: leider funktioniert das ganze nicht für Urls der Form '/pfad/zur/kategorie', also ohne letzten Slash.

Frage: wer kann mir einen Hinweis geben, wie ich bei solchen Urls den Slash hinten dran bekomme?

Hinweise: die Pfadtiefe ist beliebig (/pfad1/pfad2/pfad_n/artikel/55.html). Die Pfade existieren natürlich nicht physikalisch als Dateiverzeichnisse, 'RewriteCond %{REQUEST_FILENAME} -d' funktioniert daher auch nicht. 'RewriteRule ^/(.*)$ /index.php?PATH=$1/index [QSA,L]' geht auch nicht, dann werden zum Beispiel Pfade zu Bildern auch an index.php geschickt.
burn
Posts: 14
Joined: 2003-02-05 22:34
Location: Hannover
Contact:
 

Re: RewriteRule für dynamische Seiten

Post by burn »

Das ist jetzt wohl eine blöde Frage, aber wieso nicht einfach

Code: Select all

# /pfad/zur/kategorie -> index.php?PATH=/pfad/zur/kategorie/index 
RewriteRule ^/(.*)$ /index.php?PATH=$1/index [QSA,L]
freeze
Posts: 41
Joined: 2002-07-15 08:18
Location: Oberhausen
 

Re: RewriteRule für dynamische Seiten

Post by freeze »

Dann werden Urls zu Bildern, PDF-Dateien, Downloads usw. auch umgewandelt und an index.php geschickt. Aus Performancegründen sollen diese Dateien aber direkt ausgeliefert werden.

Bisher ist mir nur ein Weg eingefallen:

RewriteRule !^/(.*).(gif|jpg|png|css)$ /index.php?PATH=$1 [QSA,L]

Dann muss ich aber vorher festelegen, welche Dateien direkt ausgeliefert werden sollen. Es kommen ja noch eine Menge (pdf, zip usw.) dazu.

Finde ich nicht so gut, bei einem CM-System kann der Kunde ja alles Mögliche einbinden.
jojo1978
Posts: 4
Joined: 2003-07-07 21:33
 

Re: RewriteRule für dynamische Seiten

Post by jojo1978 »

Leider habe ich keine Lösung für das Problem. Im Gegenteil, ich habe ein ganz ähnliches Problem. Leider funktioniert bei mir auf dem 1&1 Exklusiv Server keines der geposteten Beispiele - auch nicht die aus der 1&1 FAQ.

Nur damit ich es richtig verstehe:
Ich kopiere die Zeile in eine Datei namens .htaccess und lege sie in ein Verzeichnis auf dem Server. Diese Umleitung soll dann auch für alle Unterverzeichnisse dieses Verzeichnisses gelten.

Muss man evtl. sonst noch in igendeiner anderen Datei etwas einstellen? Warum funktioniert das bei mir nicht :(

Gruß Joachim
freeze
Posts: 41
Joined: 2002-07-15 08:18
Location: Oberhausen
 

Re: RewriteRule für dynamische Seiten

Post by freeze »

Meine Beispiele sind nicht für .htaccess sondern funktionieren innerhalb einer VirtualHost Konfiguration in httpd.conf. Ich glaube innerhalb der .htaccess mußt man den führenden Slash weglassen, also zum Beispiel 'RewriteRule ^(.*).html$ index.php?PATH=$1 [QSA,L]'.

Hinweis auf http://httpd.apache.org/docs/mod/mod_re ... ewriteBase
Notice: If your webserver's URLs are not directly related to physical file paths, you have to use RewriteBase in every .htaccess files where you want to use RewriteRule directives.
Sonst poste mal den Output von RewriteLog bei RewriteLogLevel 4.

Ansonsten: ja .htaccess Einstellungen gelten ist für das aktuelle und alle Unterverzeichnisse.
Post Reply