4

Il existe assez peu de résultats pour add trailing slash .htaccess sur Google, mais tous les exemples que je trouve nécessitent l'utilisation de votre nom de domaine, comme dans cet exemple:Ajouter slash à des URL

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !example.php 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301] 

Mon problème est que d'un disque nom de domaine codé ne fonctionnera pas sur ma machine de développement local. Existe-t-il un moyen d'ajouter des barres obliques sans indiquer explicitement à mod_rewrite le nom de domaine?

+0

Cela ressemble à une question qui appartient plus à serverfault.com au lieu de stackoverflow.com. –

Répondre

3

Cela devrait fonctionner:

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !example.php 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [L,R=301] 
+0

. * Correspond aux barres obliques inverses, utilisez [^ /] * à la place –

+0

err, en plus de ce que je voulais dire, comme l'utilise Gumbo ci-dessous. –

+0

@Oz, oui ce serait mieux. Je ne faisais que démontrer l'utilisation de% {HTTP_HOST}, donc je suis allé pour le changement minimal de l'extrait donné à l'origine. –

7

Vous n'avez pas besoin de spécifier le domaine, vous pouvez simplement utiliser un chemin d'URL absolue:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*[^/])$ /$1/ [L,R=301] 

Cela ne fait également un chèque de l'URL régime obsolète.

+0

+1 - cela devrait fonctionner très bien - merci de le mentionner ... – nicorellius