Rewriting et include de page

  • Auteur de la discussion Auteur de la discussion momo3
  • Date de début Date de début
Nouveau WRInaute
Bonjour à tous, débutant dans le rewriting voici mon probleme.
J'utilise des includes de page en php et sans base de données.
exemple :

une page index qui va appeler le lien : page toto.php

<li><a href="?page=toto">A propos... </a></li>
=
case 'toto': include ('toto.php');break;

jusque là tout va bien et via http://www.mod-rewrite-wizard.com/
je me retrouve bien avec une page toto.html

mais dans cette page toto.php je passe des paramêtres pour passer d'une images à une autre.
exemple :

<?
if($img==0){
?>
<div id="photo"><img id="thephoto" src="photos/ba_01.jpg" alt="..." width="600" height="450"></div>
<div id="next"><p class="btnext">pr&eacute;c&eacute;dent | <a href="?page=<?echo$page?>&img=1">suivant</a> * Page toto photos * </p></div>
<?
}elseif($img==1){
?>

etc... jusqu'à l'image 58. Oui tout est dans la page sans connexion à une BD.

Et c'est là que ça coince. Les nouveaux liens .html a placer pour passer d'une image à une autre ne fonctionnent pas.

Si vous aviez une idée des conseils.... merci ;)
 
WRInaute occasionnel
Salut,

Désolé, mais j'ai de la peine à te suivre ... Dans les exemples que tu donnes, je ne vois pas de rewriting (ex : <a href="?page=toto">)

Avec du rewrite, je vairais plustôt des lien style : <a href="toto.html"> pour reprendre l'exemple d'avant, qui fonctionnerai avec une règle style RewriteRule /(.+)\.html /index.php?page=$1

Peux tu nous donner ton .htaccess et des exemples de lien avec et sans rewrite ? se sera peut-être plus claire.
 
Nouveau WRInaute
magic corp. a dit:
Salut,

Peux tu nous donner ton .htaccess et des exemples de lien avec et sans rewrite ? se sera peut-être plus claire.

Merci Magic corp pour ta réponse.
je vais tenter d'être plus claire :

voici le premier lien, le second, et le troisième :

http://www..../?page=toto (index.php + include toto.php)
http://www..../?page=toto&img=1
http://www..../?page=toto&img=2 (et ainsi de suite jusqu'à 58 )

voici le .htaccess :

RewriteEngine On
RewriteRule ^([^/]*)\$&html$ /?page=$1 [L]
RewriteRule ^([^/]*)/([^/]*)\$&html$ /?page=$1&img=$2 [L]

qui donnent :

http://www..../toto.html
http://www..../toto/1.html

sauf que, comme expliquer dans le premier message c'est un fichier :
index.php avec include des pages toto.php, tata.php, titi.php.
Dans ces pages toto.php j'appelle une variable que je fais passer dans le lien qui est lu dans la page. Exemple :

<a href="?page=<?echo$page?>&img=1">

donc problème au niveau du lien rewriting de la page toto.php pour passer d'une image à l'autre.

+ clair ? ;) thanks for help
 
WRInaute occasionnel
C'est déjà plus claire :D merci ;)

Pour ton .htaccess, comme j'avais quelque doute et pas le temps de verifier si j'avais tord ou raison, je te proposes :
Code:
RewriteEngine On
RewriteRule ^(.+)/([0-9]+)\.html$ /?page=$1&img=$2 [L]
RewriteRule ^(.+)\.html$ /?page=$1 [L]
OU
Code:
RewriteEngine On
RewriteRule ^/(.+)/([0-9]+)\.html$ /?page=$1&img=$2 [L]
RewriteRule ^/(.+)\.html$ /?page=$1 [L]
A toi de voir si ça change quelque chose.

Pour tes lien HTML, il faud que tu y intégre les URL rewrité :
Code:
<a href="<? echo $page ?>/1.html">
Au lieu de celui que tu donnes dans ton message précédent.
Soit, une fois le code HTML généré par PHP :
Code:
<a href="toto/1.html">

Si ça ne marche pas, precise les message d'erreur (Ex : Erreur 404, 500, etc...)

Bonne aprés-midi ;)
 
Nouveau WRInaute
... merci magic corp

ton premier code fonctionne. No soucix. j'accède bien à la page toto.html

mais le problème persite au second niveau.
Sur les liens de la seconde page : toto.php
(toto.php est en include ; donc pas de balise head ou body)
qui sont à l'origine comme ceci, pour passer d'une image à une autre :

Code:
<?
if($img==0){
?>
<div id="photo"><img id="thephoto" src="photos/ba_01.jpg" alt="..." width="600" height="450"></div>
  <div id="next"><p class="btnext">pr&eacute;c&eacute;dent | <a href="?page=<?echo$page?>&img=1">suivant</a> * PHOTOS TOTO * </p></div>
<?
}elseif($img==1){
?>
<div id="photo"><img id="thephoto" src="photos/ba_02.jpg" alt="..." width="600" height="450"></div>
  <div id="next"><p class="btnext"><a href="javascript:history.back()">pr&eacute;c&eacute;dent</a> | <a href="?page=<?echo$page?>&img=2">suivant</a> * PHOTOS TOTO * </p></div>
<?
}elseif($img==2){
?>

lorsque je tente un lien toto/1.html
je n'ai pas de message d'erreur mais c'est directement la page toto.php qui s'affiche sans sa feuille de style (puisque déclarée dans l'index) et sans affichée l'image demandée... :(
 
WRInaute occasionnel
Et quelque chose dans ce gout là :
Code:
<?
if($HTTP_GET_VARS['img']==0){
?>
<div id="photo"><img id="thephoto" src="photos/ba_01.jpg" alt="..." width="600" height="450"></div>
  <div id="next"><p class="btnext">pr&eacute;c&eacute;dent | <a href="<?echo$page?>/1.html">suivant</a> * PHOTOS TOTO * </p></div>
<?
}elseif($HTTP_GET_VARS['img']==1){
?>
<div id="photo"><img id="thephoto" src="photos/ba_02.jpg" alt="..." width="600" height="450"></div>
  <div id="next"><p class="btnext"><a href="javascript:history.back()">pr&eacute;c&eacute;dent</a> | <a href="<?echo$page?>/2.html">suivant</a> * PHOTOS TOTO * </p></div>
<?
}elseif($HTTP_GET_VARS['img']==2){
?>
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut