mod_rewrite

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 : mod_rewrite

par stallaf » 19 nov. 2007, 10:19

Avez-vous besoin d'autres éléments ...

Merci de me dire.
Stallaf

par Invité » 14 nov. 2007, 15:12

Merci hakazizi et Ryle et excusez ma réponse tardive...

Pour hakazizi : RewriteEngine On y est mais je ne l'ai pas retranscrit.
Pour Ryle : En fait ce que je souhaite c'est améliorer mon indexation par un moyen simple et donc transformer mes adresses exotiques. Dévoiler la structure des informations ne me dérange en rien (rappel : je n'utilise pas encore de BDD).

Pour cela, toujours si j'ai bien compris les tutos et infos sur le sujet, je veux donc que les liens exotiques construits sur mon site soit correctement interprétés par les robots (je ne vois pas l'intérêt pou un visiteur de retenir et de taper une adresse exotique) pou qu'ils puissent indexer en profondeur.

Je souhaite ensuite pouvoir vérifier afin d'être certain du résultat.

Voilà.

par Ryle » 13 nov. 2007, 15:16

Euh... elle est plutôt bizare ta règle....

Code : Tout sélectionner

^([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)\.htm$
Le masque correspond à une chaine
- commençant obligatoirement par 1 ou plus caractères alphanumérique ou tiret,
- nécessairement suivi d'un '/' puis de 1 ou plus carac alphanum ou '-',
- nécessairement suivi d'un '/' puis de 1 ou plus carac alphanum ou '-',
- nécessairement suivi d'un '/' puis de 1 ou plus carac alphanum ou '-',
- la chaine se terminant obligatoirement par ".htm"

Toutes les adresses qui vont correspondre à ce masque vont automatiquement être redirigée vers l'url :

Code : Tout sélectionner

/http://www.monsite.yxz/index.php?dossier=machin&sousdossier=chose&page=truc
avec en dur les paramètres "chose", "machin" et "truc", ce qui est à mon avis loin d'être ce que tu souhaites. Il te faudrait probablement récupérer les valeurs des parenthèses capturantes ($1, $2 ..) et les réutiliser.


Pour faire simple, donne un exemple de l'url que doit spécifier l'internaute, ainsi que l'adresse à laquelle tu veux qu'il soit redirigé :)

par hakazizi » 13 nov. 2007, 14:44

la apache ne comprend rien tu a oublie le"RewriteEngine On".
pour dire au serveur d'activé le mode rewrite
et inutile de mettre"/http://www.monsite.yxz"
mais directement"/index.php?page=truc"

par stallaf » 13 nov. 2007, 13:04

Merci pour vos réponses, je m'explique

Voilà mon
.htacces
:

Code : Tout sélectionner

RewriteRule ^([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)\.htm$ /http://www.monsite.yxz/index.php?dossier=machin&sousdossier=chose&page=truc [L]
Lorsque je tape une adresse
normale
dans mon navigateur soit :

Code : Tout sélectionner

http://www.monsite.yxz/dossier/sousdossier/page
il me l'affiche, mais sans ma css contenu dans index.php.

Lorsque je tape la même adresse
exotique
il me l'affiche sans problème.
L'uri reste exotique. Cela veut-il dire qu'il ne tient pas compte du rewrite ?

par hakazizi » 13 nov. 2007, 12:29

Il faut que tu mettent ".htaccess" .
je te donne le code.

Code : Tout sélectionner

RewriteEngine On RewriteRule ^truc.html /index.php?page=truc etc. et ce pour toutes les pages
j'explique.
tu active d'abord le mode rewrite avec ceci"RewriteEngine On"
ensuite tu declare tes pages qui seront affecté par l'url rewritte avec "RewriteRule ^"
tu met en premier le nom que tu veut donné a ta page. ensuite le nom réel de la page.
si se sont toute les pages qui sont affecté par l'url rewritte tu doit le faire pour chaque page.
si tu a des page protegé par un mdp ilest inutile de rewrité les url car aucun boat de referencement ira se connecté et encore moins s'inscrire.
je trouve cela bizarre que tu n'es rien trouvé il suffit de tapé url rewrite dans google et tu as plein de site traitant du referencement .
enfin bref.
n'oubie pas le robot.txt

Code : Tout sélectionner

User-agent: * Disallow: /index.php?page=truc etc. et ce pour toutes les pages
et ce pour que google ne reference pas ou supprime les urls que tu a declaré car ils n'est pas bon d'avoir plusieurs urls pour une seul page cela est encore pire pour le referencement que de laissé les url dynamique.

par Ryle » 13 nov. 2007, 11:55

Le plus simple, c'est de tester.. tu rentres une url et tu vois sur quelle page tu arrives. Devrait être assez facile de savoir si cela correspond à ce que tu attends ;)

Sinon tu peux également nous donner tes règles de ré-écriture pour qu'on regarde ce qu'elles font. Tu pourras ainsi voir si elles correspondent bien à ce que tu attends :)

par stallaf » 13 nov. 2007, 11:48

Bonjour,

Quelqu'un peut-il m'aider ou bien m'orienter ?
Merci

par stallaf » 09 nov. 2007, 11:34

Bonjour Power Web,

Effectivement, j'avais raté ce tutoriel très clair et je comprend beaucoup mieux.
Cependant je n'arrive pas à vérifier si ma régle fonctionne bien. C'est facile lorsque l'on change d'extension mais comment être sur dans les autres cas (exotiques) ou c'est juste la syntaxe qui est réécrite ?
Cela se vérifie-t-il dans l'URI affichée par le navigateur ?
Merci pour ton aide.

par Power Web » 08 nov. 2007, 20:35

mod_rewrite

par stallaf » 08 nov. 2007, 16:09

Bonjour,

Je ne suis peut-être pas au bon endroit et dans ce cas veuillez me pardonner.

Il ne s'agit pas d'un problème de PHP pur mais il en découle un peu. J'ai conçu un site dynamique (mais pour l'instant sans base de données) sans jamais approfondir Apache.
Là, j'ai des soucis avec mod_rewrite malgré les tutos et infos sur le sujet.

Mes adresses sont du type :

Code : Tout sélectionner

index.php?page=truc
ou :

Code : Tout sélectionner

index.php?dossier=machin&page=truc
ou bien encore :

Code : Tout sélectionner

index.php?dossier=machin&sousdossier=chose&page=truc
Cmment dois-je m'y prendre ?

Merci.[/code]