Règle "ne contient pas le mot xxx" ne fonctionne p

Bonjour,

Je ne parviens pas a trouver l'écriture pour une règle simple d'url rewriting :

Le but est que nimporte_quelle_page.html > page1.php?var=nimporte_quelle_page
SAUF "index.html"

donc la premiere étape est facile :
Code:
RewriteRule ^([a-z_]+)\.html$  /page1.php?var=$1

Et c'est pour exclure le index.html que je bute...

comment exclure un mot entier (et non des caracteres uniques comme avec [^index] ?

Merci d'avance pour votre aide,
Robin
 
Il faut mettre une condition:

Code:
RewriteCond %{REQUEST_FILENAME} !^index.html$
RewriteRule ^([a-z_]+)\.html$  /page1.php?var=$1
 
Ok, merci. Je vais tester ca.

Et il n'y a pas du tout de moyen d'inclure directement dans la regle l'exclusion d'un mot ? Sans passer par une condition préliminaire.
 
comparef a dit:
Ok, merci. Je vais tester ca.

Et il n'y a pas du tout de moyen d'inclure directement dans la regle l'exclusion d'un mot ? Sans passer par une condition préliminaire.

C'est inclus dans la règle, je ne comprend pas ce que tu veux dire.

Une règle, c'est une série de commandes RewriteCond, éventuellement vide, suivie par une commande RewriteRule.
 
Vap a dit:
comparef a dit:
Ok, merci. Je vais tester ca.

Et il n'y a pas du tout de moyen d'inclure directement dans la regle l'exclusion d'un mot ? Sans passer par une condition préliminaire.

C'est inclus dans la règle, je ne comprend pas ce que tu veux dire.

Une règle, c'est une série de commandes RewriteCond, éventuellement vide, suivie par une commande RewriteRule.

Il voulait dire exclure un mot directement dans l'expression régulière, sans RewriteCond avant.
M'étant déjà cassé la tête (mais en perl) là dessus, ça m'intéresse aussi.
 
Je me permets de déterrer ce sujet car j'ai un pb similaire dont je n'arrive pas à me sortir.

J'ai un site : http://www.trouvea.fr
Je viens de créer un sous-domaine : http://cours-de-maths.trouvea.fr

Je souhaite que chaque fois qu'une adresse contient S54, elle utilise mon sous-domaine, et sinon qu'elle utilise le www. J'ai donc modifié les liens de mon site. Mais certains liens n'ont pas été modifiés du fait de soucis de cache, etc, il existe donc encore des adresses du genre http://www.trouvea.fr/cours-de-maths/S54

J'ai donc voulu faire un htaccess de redirection 301 pour assurer mes arrières. Le but de celui ci :
Si le host est "cours-de-maths.trouvea.fr" et l'URI ne contient pas S54 => redirection 301 vers www.trouvea.fr/URI
Si le host est "www.trouvea.fr" et l'URI contient S54 => redirection 301 vers cours-de-maths.trouvea.fr/URI

Voici ce que j'ai essayé, mais ça ne fonctionne pas :


RewriteCond %{HTTP_HOST} ^cours-de-maths\.trouvea\.fr [NC]
RewriteCond %{REQUEST_URI} !^/(.*)/S54$
RewriteRule ^.* http://www.trouvea.fr%{REQUEST_URI} [R=301,L,QSA]

RewriteCond %{HTTP_HOST} ^www\.trouvea\.fr [NC]
RewriteRule S54([^0-9]) http://cours-de-maths.trouvea.fr%{REQUEST_URI} [R=301,L,QSA]
RewriteCond %{HTTP_HOST} ^www\.trouvea\.fr [NC]
RewriteRule S54$ http://cours-de-maths.trouvea.fr%{REQUEST_URI} [R=301,L,QSA]


Quelqu'un a une idée ?
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut