Ajouter un "/" a la fin d'un répertoire

WRInaute impliqué
Bonjour,

J'ai un site pour une entreprise régional hébergé au niveau national. -www.siege-social.com/sitemaregion
Donc je n'ai accès via le FTP qu'au répertoire /sitemaregion

Le problème si des utilisateurs tape l'url sans un "/" : -www.siege-social.com/sitemaregion : c'est la "merde totale, je ne sais pas pourquoi mais rien n'est pris en compte, ni le fichier style, ni les chemin des images, rien. Mais tous rentre en ordre si il y a un "/" ala fin

Donc il faut obligatoirement qu'un "/" s'ajoute a la fin, mais comme je suis une dobe en redirection, ne n'y arrive pas.

J'ai testé le serveur, l'urlrewrinting et bien activé.

Voici ce que j'ai fais et qui ne fonctionne pas (le fichier htaccess et placé dans le répertoire sitemaregion)
Code:
RewriteEngine on
RewriteRule ^sitemaregion$ ^sitemaregion/ [L]

Merci pour votre aide
 
WRInaute accro
dznet a dit:
Le problème si des utilisateurs tape l'url sans un "/" : -www.siege-social.com/sitemaregion : c'est la "merde totale, je ne sais pas pourquoi mais rien n'est pris en compte, ni le fichier style, ni les chemin des images, rien. Mais tous rentre en ordre si il y a un "/" ala fin
Le problème provient de l'emploi de chemins relatifs vers le CSS et les images.

De toute façon, le mieux est de faire une redirection 301 vers l'adresse préférée. Ceci devrait marcher:
Code:
RewriteEngine on
RewriteRule ^sitemaregion$ http://www.siege-social.com/sitemaregion/ [L,R=301]
Jean-Luc
 
WRInaute impliqué
Salut jeanluc et merci pour ta réponse,

J'ai testé ce que tu m'a donné, mais rien ne se passe, il y a pas de redirection
 
WRInaute discret
Bonjour
Mettre un index dans le répertoire
sitemaregion/index.html (php)
 
WRInaute accro
Le problème est peut-être que tu as déjà quelque part un rewriting ou un alias qui dit que sitemaregion = sitemaregion/ mais de façon "interne" plutôt que via un redirect, non? Parce que le comportement par défaut d'Apache est bien de faire un redirect automatiquement.

C'est un "vrai" dossier qui s'appelle effectivement comme ça, ou il y a un alias, un rewrite ou un truc du genre?

Jacques.
 
WRInaute impliqué
c'est vrai que c'est embêtant dans ce sens, car personne ne met de slash à la fin d'une url ... vaudrait mieux dans l'autre sens
 
WRInaute impliqué
@lg : il existe déjà un index.php, mais cela de résout pas le problème

@jcaron Non il n'existe pas déjà un redirection, et c'est cala que je veux faire, redirigé .../sitemaregion vers .../sitemaregion/

Je ne sais pas si c'est un vrais dossier (même si je le pense), car le serveur et celui de la société mère, et donc pas accès a toutes les données.

@mx : tu m'étonne
 
WRInaute accro
Si c'était un vrai dossier et qu'il n'y avait rien de particulier de fait (rewriting, alias...), Apache ferait automatiquement la redirection /dossier vers /dossier/.

Donc (en supposant que c'est bien Apache et pas IIS ou je ne sais quoi?), il y a quelque chose de configuré pour faire ça. Probablement un Alias ou une RewriteRule. Demande à celui qui s'occupe du serveur de te dire comment c'est configuré exactement et vois avec lui pour corriger ça éventuellement. Suivant la façon dont c'est configuré exactement, il est effectivement possible qu'un .htaccess dans le dossier soit ignoré si on tape /dossier.

Autre possibilité, si ce qui s'affiche quand on tape /dossier est dynamique (une page php par exemple), c'est de faire un test là-dedans pour faire la redirection. Genre if ($_SERVER['REQUEST_URI'] == '/dossier') redirect...

Autre option: ajouter un base href="/dossier/" au début du code de cette page.

Dernière option: mettre des URLs "absolues" (qui commencent par /dossier/) dans tous les liens.

Jacques.
 
WRInaute passionné
Peux-tu tenter ceci :

Code:
RewriteCond %{HTTP_HOST} ^www.siege-social.com/sitemaregion$
RewriteRule ^(.*) http://www.siege-social.com/sitemaregion/$1  [QSA,L,R=301]
 
WRInaute accro
Aucune chance que ça marche, ça: le HTTP_HOST ne contiendra de toutes façons jamais que www.siege-social.com. Et la RewriteRule aboutirait probablement à une jolie redirection en boucle infinie, non?

Jacques.
 
WRInaute impliqué
@anemone-clown il ne se passe rien :(

@jcaron, c'est vrais la solution est de mettre les chemins en absolues, mais franchement ça me gonfle, et en plus il y a le risque d'en oublié un au passage.

Je n'ai pas encore tenté le redirection via la php, car j'attends une réponse des responsables du serveur au niveau national, qui ne se pressent pas apparement :?
 
WRInaute passionné
le plus rapide c'est d'ajouter dans le <HEAD> de la page html comme jcarron l'a dit :
Code:
<base href="/sitemaregion/" />
 
WRInaute impliqué
Bonjour,

Exacte avec <base href="/sitemaregion/" /> cela fonctionne, j'ai juste donné le chemin absolu de CSS.

J'avais pas compris ce qu'avait dit jcarron, car je ne connaissais pas cette balise.

En tous cas cela a l'air de très bien fonctionné.

Merci
 
WRInaute passionné
jcaron a dit:
Et la RewriteRule aboutirait probablement à une jolie redirection en boucle infinie, non?
Ben non. :mrgreen: puisqu'il y a un Last (au prochain "passage", le "/" est présent, la condition ne sera plus réalisée). Mais pour le reste, tu as raison. :wink:
 
WRInaute accro
Je parlais d'une boucle de redirects (donc pas affectée par le [L]), et je ne vois pas en quoi au prochain tour la condition n'est pas réalisée, puisque tu matches sur ^(.*).

Donc ça donnerait site/toto -> site/sitemaregion/toto -> site/sitemaregion/sitemaregion/toto etc.

Jacques.
 
Discussions similaires
Haut