Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/10/2011, 03h18   #1
Futur Membre du Club
 
Homme Thomas BOYER
Étudiant
Inscription : septembre 2011
Messages : 27
Détails du profil
Informations personnelles :
Nom : Homme Thomas BOYER
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2011
Messages : 27
Points : 18
Points : 18
Par défaut URL rewriting - REGEX

Alors voila j'ai un problème avec un regex.

j'utilise la technique de l'URL rewriting pour crée une url simple.

Remplacer www.champo.fr/profile.php?id=4

par

www.champo.fr/tydoo.

Pour ce la j'utilise un regex dans mon .htaccess :

Code :
1
2
3
RewriteEngine on
Options +FollowSymlinks
RewriteRule ^([-A-Za-z0-9]+)$   /profile.php?pseudo=$1 [L]
Dans mon regéx j'autorise toute les lettres simple minuscule et majuscule ainsi que le tiret (-).

J'aimerais ajouté le point (.) et les accents : (é è à î ï...).

J'ai un autre probléme. C'est quand je vais sur des page que je veux pa changer comme ca

le lien :

www.champo.fr/ami

Il me met ca :

www.champo.fr/ami/?pseudo=amis

Alors que je ne veux pas de ca sur ces page. Je ne veux qu'il le fasse que sur :

www.champo.fr/profile.php


Pouvez vous m'aider SVP ?

Merci a vous
tydoo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 03h17   #2
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 329
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 329
Points : 1 657
Points : 1 657
Alors forcement, pour www.champo.fr/ami l'url rewriting va croire que "ami" est un pseudo et qu'il faut réaliser la redirection.

Mis à part lister toutes les pages qui ne sont pas des pseudo pour les exclure de la redirection, il n'y a pas grand chose à faire.
Et puis tu risques avoir des conflits si tu as un membre qui a pour pseudo l'url d'une autre page...

Le mieux à mon avis c'est de rediriger autrement, par exemple :
www.champo.fr/profil/tydoo vers www.champo.fr/profile.php?pseudo=tydoo

et du coup la regex devient
Code :
1
2
3
RewriteEngine on
Options +FollowSymlinks
RewriteRule ^profil/([-A-Za-z0-9]+)$   /profile.php?pseudo=$1 [L]

Sinon pour acepté les point et les accent, il faut les ajouter dans ta regex. Pour le point il faut l'échapper avec \ car c'est un caractère spécial :
Code :
1
2
3
RewriteEngine on
Options +FollowSymlinks
RewriteRule ^profil/([-A-Za-z0-9\.àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ]+)$   /profile.php?pseudo=$1 [L]
__________________
Zend Certified Engineer PHP 5.3

« Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 20/10/2011, 09h51   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 180
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 180
Points : 8 557
Points : 8 557
autant faire juste

Code :
RewriteRule ^profil/(.+)$   /profile.php?pseudo=$1 [L]
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 13h35   #4
Futur Membre du Club
 
Homme Thomas BOYER
Étudiant
Inscription : septembre 2011
Messages : 27
Détails du profil
Informations personnelles :
Nom : Homme Thomas BOYER
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2011
Messages : 27
Points : 18
Points : 18
Merci mais ca ne marche pas :
Code :
1
2
 
RewriteRule ^([-A-Za-z0-9\.àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ]+)$   /profile.php?pseudo=$1 [L]
Quel est le code pour ne pas prendre en compte des page comme /amis ?

Merci =)
tydoo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2011, 03h09   #5
Futur Membre du Club
 
Homme Thomas BOYER
Étudiant
Inscription : septembre 2011
Messages : 27
Détails du profil
Informations personnelles :
Nom : Homme Thomas BOYER
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2011
Messages : 27
Points : 18
Points : 18
Voila mon fichier htacces a la racine
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
#\\\\\\\\\\\\CONFIG SRV PHP5\\\\\\\\\\\\\\\\\\#
 
SetEnv PHP_VER 5
 
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\#
 
#----------------------------------------------------
 
#\\\\\\\\\\\\\\\\\ERREUR\\\\\\\\\\\\\\\\\\\\\\#
 
ErrorDocument 404 /404.php
ErrorDocument 403 /403.php
ErrorDocument 500 /500.php
 
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\#
 
 
RewriteEngine on
Options +FollowSymlinks
#Utilise seulement le site avec www
RewriteCond %{HTTP_HOST} ^mdl-champollion.fr$
RewriteRule ^(.*)   http://www.mdl-champollion.fr/$1  [QSA,L,R=301]
 
#--------------------------------------------------
# Règles de réécriture d'URL :
#--------------------------------------------------
 
 
RewriteRule ^([-A-Za-z0-9àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ]+)$ /profile.php?pseudo=$1 [L]
tydoo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 02h47   #6
Futur Membre du Club
 
Homme Thomas BOYER
Étudiant
Inscription : septembre 2011
Messages : 27
Détails du profil
Informations personnelles :
Nom : Homme Thomas BOYER
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2011
Messages : 27
Points : 18
Points : 18
bon j'ai trouvé. Les url n'accepte pas les accent. Donc je les ai enlever.

Par contre, j'aimerais rajouté le . MAis ca marche pas :

Code :
RewriteRule ^([A-Za-z0-9-_]+)$ /profile.php?pseudo=$1 [L]
tydoo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h57.


 
 
 
 
Partenaires

Hébergement Web