Version complète: sur le forum Webmaster Hub : ajout automatique de slash
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
ngweb
Bonjour,
je voudrais rajouter le slash automatiquement lorsque un visiteur saisit
http://www.domaine.ltd/repertoire au lieu de http://www.domaine.ltd/repertoire/

Normalement, Apache rajoute le slash automatiquement, sauf...

...si www.domaine.ltd est déjà une redirection (du genre domaine qui pointe sur un sous domaine)

Quelqu'un sait faire ça ?
Siddartha
Il te suffit juste de refaire une redirection supplémentaire (.htaccess ou httpd.conf) avec une règle de réecriture de style :

RewriteRule /repertoire /repertoire/
Dan
C'est un peu plus compliqué que ça wink.gif

Cette règle fera l'affaire:
CODE
RewriteEngine  on
RewriteCond    %{REQUEST_FILENAME}  -d
RewriteRule    ^(.+[^/])$    $1/    [R]
ngweb
Merci Dan,
mais ça ne fonctionne pas : car avec ta règle je me retrouve avec une url du type
http://www.sousdomaine.domaineprincipal.lt...ine/repertoire/

j'ai donc modifié comme suit, avec [/] devant la variable pour être sûr de ne prendre que le dernier repertoire :

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^[/](.+[^/])$ http://www.mondomaine.ltd/$1/ [R]

Même en faisant ça, je me retrouve encore avec cette url :

http://www.sousdomaine.domaineprincipal.ltd/repertoire/

Pas évident ces redirections avec un multi domaine ovh !!
ngweb
CITATION(ngweb @ vendredi 24 mars 2006, 00h22)
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^[/](.+[^/])$ http://www.mondomaine.ltd/$1/ [R]


Avec
RewriteBase /
c'est encore plus élégant, mais toujours pas le bon résultat blush.gif
ngweb
La dernière mouture que j'ai essayé est celle-ci :

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ http://www.monsite.ltd/$1/ [R]

et ça marche ! (merci Dan)

y a t-il un problème particulier de mettre l'url en argument ?
Dan
Désolé, j'avais oublié le RewriteBase, et surtout j'avais réfléchi en terme de serveur dédié, et non de mutualisé OVH. Ces derniers ont des règles particulières en matière de réécriture.

Tu peux essayer en rajoutant simplement un / devant le $1 de ma règle smile.gif
ngweb
ça marche en effet, bravo, mais écrire l'url, bien que moins élégant, permet de récupérer aussi le cas où il manquerait les www.

jamais content rolleyes.gif
Dan
De toutes manières, le fait de mettre le flag [R] forcera une réécriture externe, donc mod_rewrite rajoutera de lui-même le http://...
Mais ça ne gêne pas de le préciser toii-même wink.gif

Dan
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.