faire en sorte qu'Apache et Django ajoutent une barre oblique finale
Question
Mon répertoire /train est alias un script dans httpd.conf par :WSGIScriptAlias /train /some-path/../django.wsgi
Et ça marche bien, à un problème près.Si un utilisateur accède à /train (sans barre oblique finale), il ne le redirigera pas vers /train/, mais lui donnera simplement la bonne page.C'est un problème car de cette façon, les liens relatifs sur cette page mènent au mauvais endroit lorsqu'aucune barre oblique finale n'a été utilisée pour y accéder.
Comment cela peut-il être résolu ?
Merci.
La solution
J'utilise quelque chose comme ça pour rediriger /train vers /train/, ce que je fais, c'est rediriger toute l'URL qui ne se termine pas par / vers /train/.
<Location "/train">
Order deny,allow
Allow from all
RewriteEngine on
RewriteRule !^.*/$ /train/ [R]
</Location>
WSGIScriptAlias /train /some-path/../django.wsgi
Autres conseils
Si vous avez juste besoin de rediriger depuis /train
à /train/
et pas de chaque sous-répertoire sans barre oblique finale, il existe alors une solution plus simple utilisant la directive RedirectMatch :
RedirectMatch ^/train$ /train/
Définissez votre urlconf pour accepter train/
comme valide à la place, puis faites train
conduire à un redirection générique à /train/
.