Mod Rewrite Last Rule

ShadowMan

Erfahrenes Mitglied
Hi zusammen,

ich habe folgendes Problem mit dem heiß geliebten Mod Rewrite:

Code:
RewriteEngine On

RewriteBase /

#RewriteCond %{REQUEST_URI} ^(.*)/([0-9]*)-([-_0-9a-z]*).html
RewriteRule ^regeln/([a-z]*)/([a-z]*)/([0-9]*)-([-_0-9a-z]*).html regeln/zeigeregel.php?f=$1&s=$2&t=$4 [L]

#RewriteCond %{REQUEST_URI} !^(.*)/([0-9]*)-([-_0-9a-z]*).html
RewriteRule ^regeln/ regeln/regeln.php

Die Conditions habe ich mal ausgeklammert. Und zwar würde ich gerne, dass eine url /regeln/ auf die zweite Rule verweist, sollte aber dahinter mehr kommen, soll die erste Regel verwendet werden: /regeln/grundlagen/januar/501-test.html

Beides für sich alleine funktioniert, doch er will das [L] nicht beachten und sobald ich die zweite Regel zulasse, überschreibt diese die erste Regel und ich lande immer auf der regeln.php.

Was mache ich da falsch?

Vielen Dank für Tipps,
Manuel ;-]
 
Code:
RewriteRule   ^regeln/([a-z]+)/([a-z]+)/([0-9]+)-([-_0-9a-z]+)\.html$   regeln/zeigeregel.php?f=$1&s=$2&t=$4   [L]
RewriteRule   ^regeln/$   regeln/regeln.php
 
Nach 4 Stunden testen ist man manchmal wirklich blind...ich bin mir sicher, dass ich auch das ausprobiert habe, aber jetzt klappt es.

Ich danke dir vielmals!

Liebe Grüße,
Manuel ;-]
 
Hey zusammen!

Ich habe leider schon wieder ein Problem mit dem geliebten mod_rewrite. Und zwar funktionieren nun alle Links bzw. Weiterleitungen, das Problem ist aber nun, dass die Subdomains nicht mehr funktionieren.

Wisst ihr zufällig woran das liegen könnte? Überschreibe ich diese einfach mit mod_rewrite? Sobald ich die htaccess-Datei lösche funktionieren diese Subdomains wunderbar.

Lg,
Manuel ;-]
 
Versuch mal in den Ordner der Subdomain eine weitere .htaccess zu legen.

Und in die Datei schreibst du

RewriteBase /

Ich weiß nicht genau was du mit "Subdomains nicht mehr funktionieren" meinst, aber das könnte dein Problem beheben.
 
Oh super, vielen Dank für diesen Hinweis! Hat scheinbar geklappt. *freu*

Weisst du auch warum das gesetzt werden muss?
 
Weisst du auch warum das gesetzt werden muss?

Die RewriteBase gibt an, auf welchen Pfad sich die RewriteRule beziehen soll.

Da die Subdomain nach außen (z.b. Browser) einen anderen Pfad als nach innen (tatsächlicher Pfad) hat, muss mod_rewrite wissen mit welcher Adresse es arbeiten soll bzw. das die URI nicht mit dem physikalischen Pfad übereinstimmt. Sonst wird an der "falschen" Stelle gebastelt.

Ich hoffe das war einiger Maßen verständlich ;-)

Grüße - suntrop
 

Neue Beiträge

Zurück