4 Stimmen

Apache und Django dazu bringen, einen abschließenden Schrägstrich hinzuzufügen

Mein /train-Verzeichnis ist einem Skript in der httpd.conf durch ein Alias zugeordnet: WSGIScriptAlias /train /some-path/../django.wsgi

Und es funktioniert gut, bis auf ein Problem. Wenn ein Benutzer /train (ohne abschließenden Schrägstrich) aufruft, wird er nicht zu /train/ weitergeleitet, sondern erhält einfach die richtige Seite. Das ist ein Problem, weil auf diese Weise die relativen Links auf dieser Seite zum falschen Ort führen, wenn kein abschließender Schrägstrich verwendet wurde, um darauf zuzugreifen.

Wie lässt sich dies bewerkstelligen?

Gracias.

6voto

Ferran Punkte 13653

Ich verwende so etwas für die Umleitung von /train auf /train/, was ich tue, ist die Umleitung aller URLs, die nicht mit / enden, auf /train/.

<Location "/train">
     Order deny,allow
     Allow from all
     RewriteEngine on
     RewriteRule  !^.*/$  /train/  [R]
</Location>

WSGIScriptAlias /train /some-path/../django.wsgi

6voto

Sören Brunk Punkte 121

Wenn Sie nur eine Umleitung von /train a /train/ und nicht von jedem Unterverzeichnis ohne abschließenden Schrägstrich, dann gibt es eine einfachere Lösung mit der RedirectMatch-Direktive:

RedirectMatch ^/train$ /train/

0voto

Setzen Sie Ihre urlconf auf Akzeptieren train/ als gültig, dann machen Sie train führen zu einer generische Umleitung a /train/ .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X