URL rewriting complexe

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : URL rewriting complexe

Re: URL rewriting complexe

par jojolapine » 08 avr. 2010, 13:51

Bonjour,
pour être sûr que le tiret soit bien interprété dans une classe, il faut le mettre à la fin, comme suis:

Code : Tout sélectionner

[a-z0-9_-] = les lettres de a à z, les chiffres de 0 à 9 l'underscore et le tiret
;)

Re: URL rewriting complexe

par Nours312 » 07 avr. 2010, 22:17

t'es sur que ça viens du " - " ... ? par ce que là, je ne vois aucune acceptation des chiffre tels que "1" (dans ton exemple)

tu acceptes bien les chiffre 0 et 9 ... mais pas les autres ... 09 => 0-9 ;)

URL rewriting complexe

par Tonyloup35 » 07 avr. 2010, 20:07

Bonjour,

Je rencontre un problème lors de la mise en ligne de mon site sur l'hébergeur 1and1.fr. J'ai écris plusieurs règles de réécriture de liens, qui fonctionnent parfaitement sur wamp , mais pas sur 1and1 (enfin pas entièrement).
Pourtant j'ai bien activé l'url rewriting avec le code suivant :
AddType x-mapp-php5 .php

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
Voici le code complet de mon fichier htaccess placé à la racine de mon site:
AddType x-mapp-php5 .php

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z09\-_]*)$ index.php?page=$1  [QSA,L]
RewriteRule ^([a-z09\-_]*)/([A-Z]{1,}[A-Za-z09\-_]+)$ index.php?page=$1&region=$2  [QSA,L]
RewriteRule ^([a-z09\-_]*)/([A-Z]{1,}[A-Za-z09\-_]+)/([A-Z]{1,}[A-Za-z09\-_]+)$ index.php?page=$1&region=$2&dep=$3  [QSA,L]
RewriteRule ^([a-z09\-_]*)/([A-Z]{1,}[A-Za-z09\-_]+)/([A-Z]{1,}[A-Za-z09\-_]+)/([A-Z]{1,}[A-Za-z09\-_]+)$ index.php?page=$1&region=$2&dep=$3&categorie=$4  [QSA,L]
RewriteRule ^([A-Z]{1,}[A-Za-z09\-_]+)$ index.php?region=$1  [QSA,L]
RewriteRule ^([A-Z]{1,}[A-Za-z09\-_]+)/([A-Z]{1,}[A-Za-z09\-_]+)$ index.php?region=$1&dep=$2  [QSA,L]
RewriteRule ^([A-Z]{1,}[A-Za-z09\-_]+)/([A-Z]{1,}[A-Za-z09\-_]+)/([A-Z]{1,}[A-Za-z09\-_]+)$ index.php?region=$1&dep=$2&categorie=$3  [QSA,L]
RewriteRule ^([a-z09\-_]*)/([A-Za-z09\-_]+)$ index.php?page=$1&nom_site=$2  [QSA,L]
Pour traduire un peu:

Lorsqu'un chaine de caractères est tapée sans majuscules, on fait appel à la variable page. Ex: www.monsite.fr/contact
Lorsqu'une majuscule apparait, il s'agit des variables (dans l'ordre) région, département et catégorie (il s'agit d'un annuaire). Ex: www.monsite.fr/presentation/Bretagne/Finistere/Art
Et enfin, lorsque deux chaines de caractères sont entrées, on fait appel à la variable page, puis au nom d'un site. Ex: www.monsite.fr/presentation/site-de-tennis-1

Le problème, c'est que tout fonctionne bien, sauf quand un "-" est entré dans l'adresse, la la page "404 not found" apparait. Alors que tout fonctionne parfaitement sous wamp.

Voila, j'ai préféré vraiment bien détaillé mon problème pour que quelqu'un puisse m'apporter une solution.

Merci beaucoup pour votre aide à venir!