Jump to content

Exception sur un répertoire


Recommended Posts

Bonjour à tou.te.s,

 

J'ai dans mon htaccess un rewriting d'url comme ceci qui génère une url avec un slash de fin :

 

RewriteRule ^(.*)/$ /categorie.php?cat=$1 [L]

 

J'ai par ailleurs un autre fichier news.php dont je voudrais également que l'url soit aussi avec un slash de fin  "/news/"

 

Mais bien sur ma réécriture d'url m'en empèche donc j'ai testé 3 essais d'exceptions mais sans succès :

RewriteRule ^/news/ - [L]

RewriteCond %{REQUEST_FILENAME} !^news/

RewriteCond %{REQUEST_URI} !^/news/

 

Je m'y prends mal, quel est le souci ? (je suis en mutu chez OVH).

 

Merci d'avance si quelqu'un voit...

Link to comment
Share on other sites

Il y a 20 heures, sandrinoo a dit :

J'ai dans mon htaccess un rewriting d'url comme ceci qui génère une url avec un slash de fin :

 

RewriteRule ^(.*)/$ /categorie.php?cat=$1 [L]

 

Je ne suis pas certain de comprendre, car ta réécriture ne génère pas une URL avec un / final, mais fait l'inverse: elle traite une URL avec un / final et lance categorie.php avec le nom en paramètre.

 

 

Link to comment
Share on other sites

Bonjour Dan et merci,

 

Alors là je ne comprends plus rien car chez moi ça fonctionne en générant dans mon navigateur, une url propre avec un slash final de type classique : www.nd.com/nom_de_cat/

 

Comment tu écrirais ça toi ?

Link to comment
Share on other sites

:lol:  Cela ne génère pas une URL dans ton navigateur... 

 

C'est toi ou tes visiteurs qui entrent cette URL avec un / final, et ton .htaccess qui la convertit pour afficher la catégorie.

 

Link to comment
Share on other sites

Oui je me suis mal exprimée : c'est exactement ce que tu dis.

1/ Alors mon code est correct pour faire cela ?

2/ et comment faire une exception sur /news/ (sachant que la base de /news/ est news.php )?

Edited by sandrinoo
Link to comment
Share on other sites

En ajoutant une règle pour news au dessus de ta règle précédente, comme ceci par exemple:

 

RewriteRule ^news/$ /news.php [L]

 

Il faut qu'elle soit avant pour que /news/ ne soit pas capté par ta règle appelant categorie.php

 

Link to comment
Share on other sites

Oui ça c'est la première chose que j'avais faite faite au départ. J'ai quand même retesté maintenant comme tu me dis avec
"RewriteRule ^news/$ /news.php [L]" AVANT "RewriteRule ^(.*)/$ /categorie.php?cat=$1 [L]" mais sans succès :

 

- la page /news/ affiche en fait /categorie.php?cat=news

 

Par contre si Je place un # devant "RewriteRule ^(.*)/$ /categorie.php?cat=$1 [L]" là ok ça marche pour /news/ (mais plus pour les catégories bien sûr).

 

Bizarre non ??

Edited by sandrinoo
Link to comment
Share on other sites

Si elle est en première position, le flag [L] (pour LAST) doit normalement empêcher les autres règles de s'exécuter.

Cela ressemble fort à un bug !

 

As-tu autre-chose au début de ton .htaccess ? As-tu par hasard édité ton fichier .htaccess sur un PC ? Il peut avoir des caractères ^M (fin de ligne microsoft)

 

 

 

Link to comment
Share on other sites

Oui, au début de mon htaccess j'ai ça :

 

ErrorDocument 404 '404 htaccess'
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^.*$ https://www.%1%{REQUEST_URI} [L,NE,R=301]

 

Et oui je suis passée de PC (ou j'ai créé le htaccess) à MAC il y a 1 an ?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...