modification de $PHP_SELF dans .htaccess

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

michel1967
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 28 Sep 2005

modification de $PHP_SELF dans .htaccess

Message le Lun Oct 03, 2005 13:40

Bonjour,

J'utilise les RewriteRules suivants sur un serveur mutualisé :
Code: Tout sélectionner
RewriteRule .*/ezmediacatalogue/catalogue/(.*)$ /home/inovagor/public_html/ezmediacatalogue/catalogue/$1 [T="application/octstream",S=5]
RewriteRule ^/stats/store/(.*).gif$  /home/inovagor/public_html/ezstats/user/storestats.php [S=4]
RewriteRule ^/static/(.*)$  /home/inovagor/public_html/static/$1 [S=3]
RewriteRule ^/filemanager/filedownload/([^/]+)/(.*)$  /home/inovagor/public_html/ezfilemanager/files/$1 [T="application/oct-stream",S=2]
RewriteRule ^/mediacatalogue/catalogue/(.*)$ /home/inovagor/public_html/ezmediacatalogue/catalogue/$1 [T="application/oct-stream",S=1]
RewriteRule !\.(rm|txt|ico|xml|ram|mpe|mpeg|mpg|mov|gif|css|js|swf|jpg|png|jar|php4)$ /home/inovagor/public_html/index.php

Ca fonctionne bien sauf que la variable $PHP_SELF renvoi systématiquement index.php (idem quelque soit l'url qu'on appelle).
Comment faire pour ne par perdre le contenu de cette variable?
Merci,
Michel

shrom
WRInaute impliqué
WRInaute impliqué
 
Messages: 865
Inscription: 5 Juil 2004

Message le Lun Oct 03, 2005 14:20

$PHP_SELF ( ou mieux $_SERVER['PHP_SELF'] ) est le nom du script qui est exécuté, si tu veux récupérer l'URI entrée par l'utilisateur, c'est $_SERVER['REQUEST_URI'];

michel1967
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 28 Sep 2005

Message le Lun Oct 03, 2005 15:14

Merci Shrom,
Mais peux-tu me dire comment je l'utilise $_SERVER['REQUEST_URI'] dans mon .htaccess pour l'URL soit renvoyée correctement lors de l'appel de la page?

shrom
WRInaute impliqué
WRInaute impliqué
 
Messages: 865
Inscription: 5 Juil 2004

Message le Lun Oct 03, 2005 22:13

Il n'y a rien à rajouter dans ton .htaccess, c'est dans ton script PHP que tu lis cette variable.

michel1967
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 28 Sep 2005

Message le Mar Oct 04, 2005 16:52

Le pb c'est que les deux variables sont utilisées dans le code php (REQUEST_URI et PHP_SELF). Et ce n'est pas moi qui gère le code.
J'essai donc de me débrouiller avec le .htaccess et de comprendre pourquoi mes rewriteRules renvoient toujours /index.php dans $_SERVER['PHP_SELF'].


Suede
WRInaute accro
WRInaute accro
 
Messages: 3722
Inscription: 4 Oct 2002

Message le Mar Oct 04, 2005 17:01

Parce que PHP_SELF renvoie le script qui est exécuté et c'est index.php dans ton cas

exemple:
ce n'est photo.php le script qui est executé, c'est le script par defaut du repertoire vrai-chemin et en general, c'est index.php .

Code: Tout sélectionner
RewriteRule ^/chemin-virtuel/photo.php$ /home/vrai-chemin/ [L]

michel1967
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 28 Sep 2005

Message le Mer Oct 05, 2005 8:18

Dans ce cas, comment je peux indiquer dans mon .htaccess que la page par défaut est /home/inovagor/public_html/index.php ?

Si je peux faire ça (et si j'ai compris ce que tu veux dire Suede) je pourrais alors modifer la règle :
RewriteRule !\.(rm|txt|ico|xml|ram|mpe|mpeg|mpg|mov|gif|css|js|swf|jpg|png|jar|php4)$ /home/inovagor/public_html/index.php
Je vois pas encore exactement comment mais c'est l'idée non?


Suede
WRInaute accro
WRInaute accro
 
Messages: 3722
Inscription: 4 Oct 2002

Message le Mer Oct 05, 2005 8:51

Bah a priori, c'est la page par defaut. J'ai pas tout compris ce que tu veux faire.

Si tu as ca :
Code: Tout sélectionner
RewriteRule !\.(rm|txt|ico|xml|ram|mpe|mpeg|mpg|mov|gif|css|js|swf|jpg|png|jar|php4)$ /home/inovagor/public_html/index.php


Tu redirigeras toujours vers cet index.php et ce sera cet index.php qui sera mis dans le php_self.


François

michel1967
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 28 Sep 2005

Message le Mer Oct 05, 2005 9:01

Merci François pour ton aide car je ne m'en sors pas.

En fait pour résumer la situation. J'ai migré un site d'un serveur dédié vers un mutualisé.
Sur le dédié, les RewiteRules étaient dans le <virtualhost>. Mais sur le mutualisé je n'ai pas accès aux fichiers de configurations d'apache. J'utilise donc un .htaccess poue les ré-écritures.

La règle que tu cite renvoie (comme souhaité) sur la page index.php mais le problème c'est que php_self contient toujours /index.php alors que sur le servuer dédié cette variable contient l'information nécessaire à la page index.php pour afficher l'article souhaité. Par exemple /bienvenue.

Tu vois mon problème?
Michel


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités