|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
NeoKoD Nouveau WRInaute
Inscrit le: 13 Déc 2003 Messages: 11
|
Posté le : Sam Déc 13, 2003 16:37 Sujet du message: Ajouter le slash de fin de dossier manquant (Slash Trailing) |
|
|
Bonjour,
Je suis nouveau sur le forum, j'en profite pour vous saluer
Je débute avec l'UR et j'aimerais faire une régle pour ajouter les '/' de fin qui manquerais sur les noms de dossier.
Exemple :
http://site.com/accueil
en http://site.com/accueil/
J'ai voulu partir de l'exemple du site Apache :
http://httpd.apache.org/docs-2.0/misc/rewriteguide.html
( Section Trailing Slash Problem )
En cherchant sur le forum j'ai trouvé un thread correspondant mais la personne n'avait pas trouvé de solution et c'était orienté vers une solution php détectant l'erreur 404 ce que je trouve dommage..
J'ai tenté plusieurs règles dont celle du site Apache :
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [R]
Celle-ci ne fonctionne pas ( mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOp
tions MaxRedirects' to increase the limit if neccessary.
)
J'ajouterais par la suite une condition pour exclure de cette régle les urls finissant par un nom de fichier mais pour l'instant j'aimerais déjà faire fonctionner la redirection du "/dossier" en "/dossier/"
Pour infos j'ai d'autres régles qui fonctionnent bien et je comprend les expressions régulières.
Merci d'avance pour votre aide |
|
| |
|
 |
Remi L. WRInaute accro

Inscrit le: 06 Sep 2003 Messages: 1060
|
Posté le : Sam Déc 13, 2003 17:50 Sujet du message: Ajouter le slash de fin de dossier manquant (Slash Trailing) |
|
|
Mais pourquoi veux-tu toi-même ajouter le slash ?
Apache le fait tout seul, comme un grand, non ? |
|
| |
|
 |
NeoKoD Nouveau WRInaute
Inscrit le: 13 Déc 2003 Messages: 11
|
Posté le : Sam Déc 13, 2003 18:05 Sujet du message: Ajouter le slash de fin de dossier manquant (Slash Trailing) |
|
|
Apache ne le fait pas par défaut, a moins de créer des Alias pour chaque dossier du genre "Alias accueil accueil/" ..
Mon but est de mettre en place cette conditions dans le .htaccess car je n'aurais pas la main sur le fichier de config httpd.conf
Y a une chose étrange, théoriquement, Apache reconnait si le fichier demandé n'est pas un fichier mais un dossier et doit renvoyer le code d'erreur 301. Cependant lorsque j'ajoute ces 2 lignes dans mon .htaccess :
| Code: |
ErrorDocument 404 /404.html
ErrorDocument 301 /301.html |
Le fichier 301 n'est jamais appelé dans le cas d'un Trailing Slash manquant.. pourtout les 404 fonctionnes bien. |
|
| |
|
 |
Remi L. WRInaute accro

Inscrit le: 06 Sep 2003 Messages: 1060
|
Posté le : Sam Déc 13, 2003 19:16 Sujet du message: Ajouter le slash de fin de dossier manquant (Slash Trailing) |
|
|
http://httpd.apache.org/docs/mod/mod_dir.html
Et Apache génère effectivement dans ce cas un 301, mais (en tout cas chez OVH je ne sais pas ailleurs) il me semble bien que tu ne peux pas détourner l'erreur... |
|
| |
|
 |
NeoKoD Nouveau WRInaute
Inscrit le: 13 Déc 2003 Messages: 11
|
Posté le : Dim Déc 14, 2003 1:24 Sujet du message: Ajouter le slash de fin de dossier manquant (Slash Trailing) |
|
|
Apparement le code d'erreur n'est pas détournable, cependant ne peut-on pas faire une règle qui convertit l'url qui n'a pas de slash final tout simplement ?
Si je met juste ça :
| Code: |
| RewriteRule (.+)$ $1/ [L] |
Je devrais avoir pour toutes les urls un '/' terminal en plus non ?
J'ai a chaque fois un message m'indiquant qu'il boucle ( maximum internal redirect )
Le coup du [L] ne sert-il pas a lui dire de s'arrêter a cette régle ?
Y a t-il des tutoriaux en français sur l'UR plus détaillé que ceux de WRI ( qui sont très bon mais pas assez précis pour mon cas )
Merci |
|
| |
|
 |
nikoshr WRInaute impliqué

Inscrit le: 10 Juil 2003 Messages: 319
|
Posté le : Dim Déc 14, 2003 10:32 Sujet du message: Ajouter le slash de fin de dossier manquant (Slash Trailing) |
|
|
Les règles que tu utilises, elles sont dans un httpd.conf ou un .htaccess ? Parce qu'il y a une subtilité avec le .htaccess : une fois que l'URL a été réécrite, elle subit à nouveau tout le traitement d'interprétation et repasse donc par le l'URL Rewriting. S'il n'y a pas de condition d'arrêt adéquate, on boucle. Sinon, il ne reste plus qu'à mettre en place un log du rewriting et voir ce que ca donne.
Sur
| Code: |
| RewriteRule (.+)$ $1/ [L] |
tu manipules l'URL uniquement en interne, donc rien de visible pour le client (navigateur). |
|
| |
|
 |
NeoKoD Nouveau WRInaute
Inscrit le: 13 Déc 2003 Messages: 11
|
Posté le : Dim Déc 14, 2003 10:50 Sujet du message: Ajouter le slash de fin de dossier manquant (Slash Trailing) |
|
|
Hummm ok je vois,
Etrange ce comportement, je pensais que l'url été soumises aux autres conditions si on avait pas mis le [L] mais je ne savais pas qu'elle repasserais une seconde fois dans le .htaccess ..
J'ai vu sur la doc apache une directive de log, je vais m'en servir c'est une bonne idée
Merci |
|
| |
|
 |
nikoshr WRInaute impliqué

Inscrit le: 10 Juil 2003 Messages: 319
|
Posté le : Dim Déc 14, 2003 11:12 Sujet du message: Ajouter le slash de fin de dossier manquant (Slash Trailing) |
|
|
En fait, il semblerait que l'URL Rewriting (et le reste d'ailleurs) dans les .htaccess soit une véritable Bidouille™ , voir la doc de l'URL Rewriting, section Internal Processing/API phases, point 2. Apparemment, ils sont les premiers étonnés que ca marche. Et pour pouvoir activer les logs, il faut avoir accès au httpd.conf
| Code: |
RewriteLog /chemin/pour/les/logs/rewrite.log
RewriteLogLevel 9 |
|
|
| |
|
 |
NeoKoD Nouveau WRInaute
Inscrit le: 13 Déc 2003 Messages: 11
|
Posté le : Dim Déc 14, 2003 11:23 Sujet du message: Ajouter le slash de fin de dossier manquant (Slash Trailing) |
|
|
Ok, j'avais déjà jetté un oeil sur cette page, mais j'ai pas tout pigé.
Pour le RewriteLog en effet cela ne marchait pas dans le .htaccess et en le foutant dans le httpd.conf j'ai pu les faire fonctionner.
Merci |
|
| |
|
 |
| |
|
|