Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 27/11/2010, 00h04   #1
Membre du Club
 
Inscription : janvier 2005
Messages : 244
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 244
Points : 54
Points : 54
Envoyer un message via MSN à dark_vidor
Par défaut URL Rewriting inverse

Bonjour,

J'utilise l'url rewriting sur mon site, mais pour un de mes scripts j'aurais besoin d'avoir le lien d'origine.

Existe t il une fonction inverse ou qui permette de reconstruire l'url avant la transformation ?

J'ai regardé du coté des super globales, mais j'ai rien trouvé de concluant

Merci
dark_vidor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2010, 00h13   #2
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 134
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

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

Informations forums :
Inscription : décembre 2007
Messages : 2 134
Points : 2 877
Points : 2 877
Ceci ?
Code :
1
2
 
$url = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'];
__________________
Développeur Web, accessoirement geek (ou l'inverse)
http://thomasrambaud.com
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2010, 11h27   #3
Membre éclairé
 
Inscription : octobre 2004
Messages : 235
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 235
Points : 360
Points : 360
Citation:
Envoyé par ThomasR Voir le message
Ceci ?
Code :
1
2
 
$url = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'];

Non justement, QUERY_STRING renverra l'URL APRÈS rewriting...

un phpinfo() montre facilement la réponse :

Regarde du coté de REQUEST_URI :-)
Joker-eph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2010, 20h48   #4
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 134
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

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

Informations forums :
Inscription : décembre 2007
Messages : 2 134
Points : 2 877
Points : 2 877
Idem pour REQUEST_URI.
__________________
Développeur Web, accessoirement geek (ou l'inverse)
http://thomasrambaud.com
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 27/11/2010, 22h31   #5
Membre éclairé
 
Inscription : octobre 2004
Messages : 235
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 235
Points : 360
Points : 360
Pas chez moi...

Je viens de refaire le test, avec comme .htaccess :

Code :
1
2
3
 
RewriteEngine on
RewriteRule ^(.*)$ index.php [QSA,L]
et index.php :


Si j'accède à l'url : http://localhost/blablabla/dsfs/SDF/DF/GDF/GDF/G/

J'obtiens bien "/blablabla/dsfs/SDF/DF/GDF/GDF/G/" pour REQUEST_URI. Par contre QUERY_STRING indique "no value"
Joker-eph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2010, 23h57   #6
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 134
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

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

Informations forums :
Inscription : décembre 2007
Messages : 2 134
Points : 2 877
Points : 2 877
C'est bien ce que je dis, REQUEST_URI renvoie l'URL réécrite, QUERY_STRING renvoie l'URL paramétré.

Dans ta règle de réécriture tu n'utilises aucun paramètre, donc forcément QUERY_STRING n'a pas de valeur et $url sera égal à index.php, çà n'a aucun intérêt par rapport au sujet.

Code :
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
request : /blabla/blibli
$url : index.php?q=/blabla/blibli
Code :
RewriteRule ^article-([0-9]+)$ index.php?type=article&id=$1 [L,QSA]
request : /article-12
$url : index.php?type=article&id=12

Donc ceci fonctionne bien :
Code :
$url = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'];
__________________
Développeur Web, accessoirement geek (ou l'inverse)
http://thomasrambaud.com
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 10h14   #7
Membre éclairé
 
Inscription : octobre 2004
Messages : 235
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 235
Points : 360
Points : 360
Hum, on ne doit pas utiliser le même vocabulaire ;-)
Quand il a écrit "l'url avant la transformation", j'ai compris qu'il voulait :


Citation:
request : /article-12
$url : /article-12
Au contraire de :

Citation:
request : /article-12
$url : index.php?type=article&id=12
Désolé si j'étais hors sujet alors !

dark_vidor : résolu ?
Joker-eph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 11h40   #8
Membre du Club
 
Inscription : janvier 2005
Messages : 244
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 244
Points : 54
Points : 54
Envoyer un message via MSN à dark_vidor
c'est bien le résultat de
Code :
 $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING']
qui m'intéresse
dark_vidor est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h51.


 
 
 
 
Partenaires

Hébergement Web