web-dev-qa-db-fra.com

Nginx 301 redirige les dossiers en ajoutant une barre oblique

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; } }

3
george-mathieson

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.

1
phoops

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;
1
Yaroslav Nikitenko