Claudius L.: Variable in RewriteRule nutzen

Beitrag lesen

Hallo dedlfix!

Du beschreibst aber dein eigentliches Ziel nicht.

Da hast du leider verdammt Recht und wie mir jetzt auffällt, hat meine erster Beispielcode noch nicht einmal dargestellt, was er eigentlich sollte. Ich wollte das Beispiel vereinfachen, habe es dabei aber versehentlich verändert.
Also ganz von vorne:
Mein eigentliches Ziel sind Clean URIs - alle Seiten werden von einer index.php in / generiert, die URIs sollen aber sauber und sprechend sein. Kommt eine neue Seite dazu, soll dafür keine Änderung in der .htaccess notwendig sein. Das schließt eine RewriteRule wie

RewriteRule ^ersteseite|zweiteseite$ index.php

aus, da neue Seiten in der .htaccess ergänzt werden müssten. Eine gierige RewriteRule halte ich auch für keine gute Idee, da somit kein direkter Zugriff mehr auf irgendwelche Unterverzeichnisse oder Dateien mehr möglich wäre.

RewriteRule ^.*$ index.php

(Die Möglichkeit, mittels RewriteCond auf -f etc. zu prüfen kenne ich, ich bevorzuge aber eine andere Lösung.)
Aus diesen Gründen möchte ich ein Prefix für alle Seiten-IDs verwenden. Beispielsweise page/, das soll aber veränderbar sein (je nach Wunsch z.B. auf "view/", "v/" o.Ä.). Sprich, jeder Request auf /page/.* soll auf /index.php weitergeleitet werden. Daher dachte ich an eine .htaccess im DocumentRoot, mit

RewriteRule page/.* index.php

Ich vermute, ab hier habe ich den Sachverhalt im Eingangsposting erklärt: Dass ich statt "page/" eben eine Variable verwenden möchte, welche im PHP-Skript verfügbar ist, die RewriteRule dies aber (nicht direkt) zulässt usw.

Ist es, dass du in einem Hauptverzeichnis bist, dort eine .htaccess liegen hast und nun für ein Unterverzeichnis keine eigene .htaccess ablegen willst, sondern eine Regel dafür in der Hauptverzeichnis-.htaccess erstellen willst?

Wenn ich das richtig verstanden habe, dann ein Stückweit ja. Vor allem aber, weil das Unterverzeichnis garnicht existieren soll.

Geht es nicht, in der Haupt-.htaccess nur die Variable mit dem Verweis auf das Pages-Verzeichnis abzulegen und im Pages-Verzeichnis selbst eine eigene .htaccess mit zu sich selbst relativen Regeln zu erstellen?

Das ginge. Aber dann müsste das Verzeichnis /page/ ja existieren, darin eine .htaccess liegen, welche dann wiederum auf /index.php weiterleitet. Dann aber habe ich wieder die Situation, dass in in /.htaccess die Variable definiert werden muss und ich bei einer Änderung noch eine zweite Änderung vornehmen muss, nämlich das Verzeichnis /page umbenennen.

Ich hoffe, dass ich habe dich richtig verstanden habe und jetzt deutlich machen konnte, worum es mir eigentlich ging/geht.
Und natürlich – zum gefühlt x-ten Mal – herzlichen Dank für deine Antwort!

Viele Grüße,

Claudius