Dubioses Verhalten der mod_rewrite Funktion

ronin

Erfahrenes Mitglied
Hallo zusammen.


Ich will und werde meine Seite ein wenig umstellen und die Linkstruktur entsprechend verändern. Ich nutze dazu die mod_rewrite Funktion, allerdings gibt es da ein kleines Dilemma, welches ich mir nicht erklären kann.


.htaccess Code (Auszug)
Code:
RewriteEngine on
RewriteBase  /
RewriteRule  ^forum/$ /forum/index.php [NC,L]
RewriteRule  ^forum/([-0-9a-z]*)/$ /forum/showforum.php?fid=$1 [NC,L]

Wenn ich nach http://www.domain.tld/forum/ surfe, funktioniert es auch ohne abschließenden Slash.
http://www.domain.tld/forum
http://www.domain.tld/forum/
Beides klappt.

Wenn ich nun aber nach http://www.domain.tld/forum/unterforum/ surfe, klappt es nicht mehr ohne sondern nur mit Slash.
Funktioniert: http://www.domain.tld/forum/unterforum/
Funktioniert nicht: http://www.domain.tld/forum/unterforum

Bin ich nicht nett genug zu meinem Webserver oder stimmt was mit der .htaccess nicht?
Vielen Dank für die Hilfe und viele Grüße.

Ronin
 
Dass sowohl „/forum“ als auch „/forum/“ funktioniert, hat nichts mit dem „mod_rewrite“-Modul zu tun. Es hat wohl eher etwas mit der „MultiViews“-Option zu tun, bei der, wenn sie aktiviert ist, Apache mehrere Alternativen prüft neben der tatsächlich angeforderten Ressource. In deinem Fall existiert die Datei „/forum“ wohn nicht, Apache prüft nun, ob es ein Verzeichnis mit demselben Namen gibt, und schickt schlussendlich die Indexdatei zurück, also „/forum/index.php"
 
Hm.

Besteht denn eine Möglichkeit, den Slash am Ende zu optionalisieren? Ich habs nälich eben bei tutorials.de gecheckt, da funktionieren beide Möglichkeiten, mal mit und mal ohne Slash. ;)

Herzlichen Dank.
Grüße, Ronin
 
Bissel Suchen hat geholfen. Vier Tage Suchen jedenfalls. ;)

Code:
RewriteEngine on
RewriteBase  /
RewriteRule  ^forum/$ /forum/index.php [NC,L]
RewriteRule  ^forum/([-0-9a-z]*)/?$ /forum/showforum.php?fid=$1 [NC,L]

Dat is nu die Lösung. ;)
 
Zurück