Problème de php : conflit avec l'URL Rewriting?
7 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- Hyogapag
- Nouveau WRInaute

- Messages: 7
- Inscription: 3 Mar 2005
Problème de php : conflit avec l'URL Rewriting?
Bonjour, je débute en URL Rewriting, et j'aurais besoin d'un petit coup de main.^^ Déjà, voici mon .htaccess :
En fait, le fichier site.php contient le graphisme du site, et au milieu se trouve un include qui intègre la page voulue du site. Voilà les quelques lignes qui y correspondent :
Le fichier milieu.php intègre la page au graphisme du site. Exemple : http://www.saintseiya.tv/accueil.html et http://www.saintseiya.tv/accueil.php
Où est le problème? En fait, je voudrais rajouter, juste au-dessus le l'include appelant milieu.php, cette ligne :
Le fichier titre-rubrique.php permet d'appeler l'image titre de la rubrique de façon "automatisée". Seulement, quand je rajoute cette ligne de code dans site.php, c'est l'image correspondant à l'accueil qui s'affiche, et ce quelle que soit la rubrique! Si ça peut aider, voici le contenu de titre-rubrique.php :
Et tant qu'on y est, le contenu de milieu.php^^
D'après mes associés, le problème vient d'un conflit avec l'URL Rewriting. Seulement là je suis dépassé.^^ Pourriez-vous m'aider s'il vous plait? Merci beaucoup.
- Code: Tout sélectionner
RewriteEngine on
RewriteCond %{HTTP_HOST} ^saintseiya.tv$
RewriteRule ^(.*) http://www.saintseiya.tv/$1 [QSA,L,R=301]
RewriteCond %{HTTP_HOST} ^forum.saintseiya.tv$
RewriteRule ^(.*) http://www.saintseiya.tv/forum$1 [QSA,L,R=301]
RewriteCond %{HTTP_HOST} ^saintseiya.tv/accueil.php$
RewriteRule ^(.*) http://www.saintseiya.tv/accueil.html$1 [QSA,L,R=301]
RewriteRule ^(.+)\.html$ site.php?p=$1 [L]
RewriteRule ^(.+)/(.+)\.html$ site.php?d1=$1&p=$2 [L]
RewriteRule ^(.+)/(.+)/(.+)\.html$ site.php?d1=$1&d2=$2&p=$3 [L]
RewriteRule ^(.+)/(.+)/(.+)/(.+)\.html$ site.php?d1=$1&d2=$2&d3=$3&p=$4 [L]
En fait, le fichier site.php contient le graphisme du site, et au milieu se trouve un include qui intègre la page voulue du site. Voilà les quelques lignes qui y correspondent :
- Code: Tout sélectionner
<td width="448" class="milieu">
<? @include '/home/web/saintseiya.tv/_administration/pages/milieu.php'; ?>
</td>
Le fichier milieu.php intègre la page au graphisme du site. Exemple : http://www.saintseiya.tv/accueil.html et http://www.saintseiya.tv/accueil.php
Où est le problème? En fait, je voudrais rajouter, juste au-dessus le l'include appelant milieu.php, cette ligne :
- Code: Tout sélectionner
<? @include '/home/web/saintseiya.tv/_administration/pages/titre-rubrique.php'; ?>
Le fichier titre-rubrique.php permet d'appeler l'image titre de la rubrique de façon "automatisée". Seulement, quand je rajoute cette ligne de code dans site.php, c'est l'image correspondant à l'accueil qui s'affiche, et ce quelle que soit la rubrique! Si ça peut aider, voici le contenu de titre-rubrique.php :
- Code: Tout sélectionner
<?
@$dossier = $_GET['d1'];
if ($dossier=='')
{
print "<img src='http://www.saintseiya.tv/_administration/images/titre_rubrique-accueil.gif' alt='' width='440' height='30'/>';
}
else
{
$strimg=''.$dossier.'';
print "<img src='http://www.saintseiya.tv/_administration/images/titre_rubrique-".$strimg.".gif' alt='' width='440' height='30'/>";
}
?>
Et tant qu'on y est, le contenu de milieu.php^^
- Code: Tout sélectionner
<?
@$dossier = $_GET['d1'];
@$rub = $_GET['d2'];
@$s_rub = $_GET['d3'];
@$pag = $_GET['p'];
if($rub=='') // Si la variable $rub est vide
{
if ($dossier=='') // Si la variable $dossier est vide
{
if($pag=='')
{
@include('accueil.php');
}
else
{
$url=''.$pag.'.php';
@include ($url); // On insère page.php
}
}
else
{
$url=''.$dossier.'/'.$pag.'.php';
@include ($url); // On insère $dossier/page.php
}
}
else // Si la variable $rub est remplie
{
if($s_rub=='')
{
$url=''.$dossier.'/'.$rub.'/'.$pag.'.php';
@include ($url);
}
else
{
$url=''.$dossier.'/'.$rub.'/'.$s_rub.'/'.$pag.'.php';
@include ($url);
}
}
?>
D'après mes associés, le problème vient d'un conflit avec l'URL Rewriting. Seulement là je suis dépassé.^^ Pourriez-vous m'aider s'il vous plait? Merci beaucoup.
-

Phix - WRInaute occasionnel

- Messages: 420
- Inscription: 15 Juin 2004
Je ne vois pas trop à quoi c'est du mais je te dois te prévenir d'une chose dans ton code, quant tu fais ca :
tu récupères les paramètres pour ensuite afficher la page, or tu ne vérifies même pas leur contenu! En faisant cela (et en plus en mettant ton code à découvert) tu t'exposes à de graves risques de hacking. Fais au moins ceci:
Ce sera une première sécurité.
Deuxièment, si tu enlevais les @ devant tes fonctions, tu pourras voir quelles erreurs sont rencontrées et ça pourrait t'aider un peu je pense...
- Code: Tout sélectionner
@$dossier = $_GET['d1'];
@$rub = $_GET['d2'];
@$s_rub = $_GET['d3'];
@$pag = $_GET['p'];
tu récupères les paramètres pour ensuite afficher la page, or tu ne vérifies même pas leur contenu! En faisant cela (et en plus en mettant ton code à découvert) tu t'exposes à de graves risques de hacking. Fais au moins ceci:
- Code: Tout sélectionner
@$dossier = addslashes($_GET['d1']);
@$rub = addslashes($_GET['d2']);
@$s_rub = addslashes($_GET['d3']);
@$pag = addslashes($_GET['p']);
Ce sera une première sécurité.
Deuxièment, si tu enlevais les @ devant tes fonctions, tu pourras voir quelles erreurs sont rencontrées et ça pourrait t'aider un peu je pense...
- Hyogapag
- Nouveau WRInaute

- Messages: 7
- Inscription: 3 Mar 2005
Pour ton premièrement : merci, je ne savais pas.^^
Pour le deuxièmement : j'ai enlevé le @ pour l'include concernant l'image, et ça ne change rien^^ Voir mes pages de test : http://www.saintseiya.tv/_administratio ... cueil.html
et http://www.saintseiya.tv/_administratio ... index.html
Bien sûr le dossier test2 contient : site.php, milieu.php, .htaccess, titre-rubrique.php^^
Il y a deux images qui s'affichent c'est normal : celle du haut est "automatisée", celle du bas mise manuellement.
Edit : j'ai aussi enlevé le @ dans titre-rubrique.php, au début je croyais que ça faisait une erreur mais c'était une faute de frappe de ma part, donc mon problème reste le même qu'au début.^^
Edit2 : en fait le script considère $dossier comme vide. Mais pourquoi?
Pour le deuxièmement : j'ai enlevé le @ pour l'include concernant l'image, et ça ne change rien^^ Voir mes pages de test : http://www.saintseiya.tv/_administratio ... cueil.html
et http://www.saintseiya.tv/_administratio ... index.html
Bien sûr le dossier test2 contient : site.php, milieu.php, .htaccess, titre-rubrique.php^^
Il y a deux images qui s'affichent c'est normal : celle du haut est "automatisée", celle du bas mise manuellement.
Edit : j'ai aussi enlevé le @ dans titre-rubrique.php, au début je croyais que ça faisait une erreur mais c'était une faute de frappe de ma part, donc mon problème reste le même qu'au début.^^
Edit2 : en fait le script considère $dossier comme vide. Mais pourquoi?
-

Phix - WRInaute occasionnel

- Messages: 420
- Inscription: 15 Juin 2004
Apparemment ca viendrait d'un probleme des paramètres non?
Essaie, pour chaque page inclue d'afficher les paramètres, du genre:
Tu verras peut-être quel paramètre ne passe pas...
Essaie, pour chaque page inclue d'afficher les paramètres, du genre:
- Code: Tout sélectionner
echo "---> début milieu.php<br/>";
echo "d1: ".$_GET['d1']."<br/>";
echo "d2: ".$_GET['d2']."<br/>";
echo "---> fin milieu.php<br/>";";
Tu verras peut-être quel paramètre ne passe pas...
-

Phix - WRInaute occasionnel

- Messages: 420
- Inscription: 15 Juin 2004
essaie de remplacer:
par
dans ton .htaccess, ta première règle est toujours vraie donc tu ne peux pas accéder aux autres... Il faut toujours partir du cas le plus précis, au cas le plus général. (enfin je suis pas sur, je suis pas un pro de l'UR
)
- Code: Tout sélectionner
RewriteRule ^(.+)\.html$ site.php?p=$1 [L]
RewriteRule ^(.+)/(.+)\.html$ site.php?d1=$1&p=$2 [L]
RewriteRule ^(.+)/(.+)/(.+)\.html$ site.php?d1=$1&d2=$2&p=$3 [L]
RewriteRule ^(.+)/(.+)/(.+)/(.+)\.html$ site.php?d1=$1&d2=$2&d3=$3&p=$4 [L]
par
- Code: Tout sélectionner
RewriteRule ^(.+)/(.+)/(.+)/(.+)\.html$ site.php?d1=$1&d2=$2&d3=$3&p=$4 [L]
RewriteRule ^(.+)/(.+)/(.+)\.html$ site.php?d1=$1&d2=$2&p=$3 [L]
RewriteRule ^(.+)/(.+)\.html$ site.php?d1=$1&p=$2 [L]
RewriteRule ^(.+)\.html$ site.php?p=$1 [L]
dans ton .htaccess, ta première règle est toujours vraie donc tu ne peux pas accéder aux autres... Il faut toujours partir du cas le plus précis, au cas le plus général. (enfin je suis pas sur, je suis pas un pro de l'UR
7 messages
• Page 1 sur 1
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 :
- problème de conflit en PHP
- [RESOLU]Url rewriting qui marche pas [conflit nom fichier]
- Conflit de rewriting ?
- url rewriting sur url php a point
- 2 url avec le même url rewriting = problème pour GG ?
- Conflit entre règles de rewriting (RewriteRule)
- Conflit Javascript/PHP
- conflit redirection url
- [Résolu] Conflit entre 3 règles d'URL rewriting
- URL Rewriting .php
- Tutoriel URL Rewriting
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- l'URL Rewriting expliqué aux débutants
- Optimiser le référencement d'un forum phpBB : réécriture d'URL
- Accord commercial entre Google et l'agence Associated Press
- 3ème partie de l'article .htaccess : les réécritures conditionnelles
- Le référencement de pages PHP
- L'URL Rewriting expliqué aux débutants
Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl
- Liste des backlinks
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
Qui est en ligne
Utilisateurs parcourant ce forum: Google [Bot] et 2 invités
