Nginx effectue actuellement les tâches suivantes:
example.com/folder
301 rediriger vers:
example.com/folder/
Comment puis-je l'empêcher de faire cela?
Merci.
Edit: Ajout de la configuration Nginx
server { server_name www.example.com; listen *:80; listen [::]:80 ipv6only=on; return 301 http://example.com$request_uri; } server { server_name example.com; listen :80; listen [::]:80; root /home/usr/www; index index.htm; location ~ .(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } }
Avec votre configuration, le comportement que vous obtenez est normal. C'est parce que vous avez un dossier nommé folder
qu'Apache ajoute le slash de fin/et masque index.html
(ou index.php
) s'il n'est pas spécifié.
Le seul moyen de supprimer la barre oblique à la fin serait de forcer toutes les demandes à passer par un fichier (par exemple, index.php), puis de faire en sorte que la logique de routage de votre application fonctionne correctement. Mais ceci est trop spécifique à ce que vous essayez d'accomplir pour y répondre.
Cela se produit probablement pendant la phase de réécriture interne. Pour désactiver cela, ajoutez dans votre bloc server
(ou son bloc interne):
rewrite ^(.+)/+$ $1 permanent;