Frage

Ich habe die entsprechenden Fragen durchgelesen, komme aber mit dieser kleinen Einschränkung nicht klar.Der golden Regel, die ich zum Entfernen von nachgestellten Schrägstrichen gesehen habe mod_rewrite Ist:

RewriteRule ^(.*)/$ /$1 [R,L].

Das ist alles schön und gut, aber es entfernt die vorherige Verzeichnisstruktur, sofern eine existiert.Wenn der Bootstrap meiner Anwendung also im Stammverzeichnis des gehosteten Pfads ausgeführt wird, funktioniert er, jedoch nicht in einem Unterverzeichnis:

http://localhost/path/to/application/pretty/query/string/

Wird

http://localhost/pretty/query/string (Notiz;Der Schrägstrich wird entfernt, aber auch das Verzeichnis)

Wie kann ich den aktuellen Verzeichnisspeicherort beibehalten, damit das vorherige Beispiel das erwartete Ergebnis zurückgibt:

http://localhost/path/to/application/pretty/query/string


Aktualisieren

Letztlich dient dies der Konsistenz;entweder anhängen oder Das Entfernen eines abschließenden Schrägstrichs ist geeignet.Ich arbeite hin und her und versuche, einen der beiden Ansätze zum Laufen zu bringen, ohne Erfolg.

Antworten, bei denen der abschließende Schrägstrich entweder angehängt oder entfernt wird, sind akzeptabel!

War es hilfreich?

Lösung

Nun, ich habe es für das Anhängen gelöst:

Options +FollowSymLinks

RewriteEngine On
RewriteBase /_dev/_projects/mf_frame

RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1/ [R,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) ?routePath=$1 [L,QSA]

Das hat mir gefehlt RewriteBase Richtlinie.Ich werde es noch einmal versuchen und mich ausziehen.Bitte schlagen Sie gerne Alternativen zu meinem Ansatz vor, wenn etwas besser gemacht werden kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top