Développement d'un site dynamique + url rewriting + css

WRInaute occasionnel
Bonjour,
je développe actuellement un site dynamique + url rewriting + css

Mon site est constitué comme cela :
Code:
     <div id="conteneur">
	      <div id="bandeau"><?php include('bandeau.php'); ?></div>
		  <div id="menu"><?php include('pro_drop4.html'); ?></div>	  
		  <div id="contenu"><?php include('pages-autorisees.php'); ?></div>
		  <div id="pied"><?php include('pied.php'); ?></div>
	 <div>

Avant l'url rewriting, j'appelais mon contenu en faisant un :
Code:
www.xxxxxx.com/index.php?page=contenu1.php
dans mes pages autorisés je faisais un test comme cela :
Code:
if(!isset($_GET['page']))
	 { 
	  include('page-intro.php');
				}
				  else
				{
        include('contenu1.php');
        }

mais avec l'url rewriting comment aller chercher la page passée en paramètre ? surtout que l'url de ma page est de type :

Code:
www.xxxxxx.com/contenu1.html

Je fais peut être compliqué avec ma méthode mais je n'en vois pas d'autres.
Merci d'avance
 
WRInaute occasionnel
de tête, le .htaccess doit donner quelque chose comme ça :
Code:
RewriteEngine On
RewriteRule ^(.*?).html$ /index.php?page=$1 [L]

(pense aussi à mettre AllowOverride All dans la configuration apache de ton virtualhost pour permettre l'utilisation du .htaccess)
 
WRInaute accro
Cela ne change rien, le rewrite n'est qu'un maquillage de l'url. Tu travailles toujours sur l'url physique, la variable "page" dans ton cas est active.

Code:
if(!isset($_GET['page']))
    {
     include('page-intro.html');
            }
              else
            {
        include('contenu1.html');
        }
 
WRInaute occasionnel
mon url rewriting se compose comme ça :

Code:
RewriteEngine on
RewriteRule ^(.*).html$ /index.php?page=$1 [L,QSA]

mais en revanche mes liens dans mon code source doit être de quelle sorte ?

index.php?page=contenu1.php ou alors contenu1.html ?

merci merci
 
WRInaute occasionnel
alors pour appeler mon contenu j'ai donc :

Code:
if(empty($_GET['page']))
	 { 
	  include('page-principale.php');
				}
				  else
				{
      include($_GET['page']);
	 }

et comme lien :

Code:
<a href="/dossier1/page1.html">Pourquoi nous choisir ?</a><br>
<a href="/dossier2/page2.html">Audit Gratuit</a>

et voilà le message d'erreur :

Code:
Warning: main(dossier2/page2) [function.main]: failed to open stream: No such file or directory in /home.36/s/u/p/xxxxxx/www/pages-autorisees.php on line 8

Warning: main() [function.include]: Failed opening 'dossier2/page2' for inclusion (include_path='.:/usr/local/lib/php') in /home.36/s/u/p/xxxxxx/www/pages-autorisees.php on line 8
 
WRInaute occasionnel
oui ! c'est parce que ton htaccess envoie tout ce qui se situe ( (.*) ) avant le .html dans la variable $page.
Pour avoir une variable $dossier et une $page, tu dois faire : (toujours de tête, désolé)
Code:
RewriteRule ^(.*?)/(.*?).html$ /index.php?dossier=$1&page=$2
 
WRInaute occasionnel
j'ai carrement cette erreur avec ton code Dider ;) :

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
 
WRInaute occasionnel
Code:
RewriteEngine on
RewriteRule ^(.*?)/(.*?).html$ /index.php?dossier=$1&page=$2  [L,QSA]

comme ça ?
(la fameuse erreur 500, je l'adore, celle-la !)
 
WRInaute occasionnel
ça fonctionne mais mon contenu n'est pas appelé.
Et de plus si je clique 10 fois sur le lien j'aurais 10 fois le nom de mon dossier dans l'url
 
WRInaute occasionnel
jiojioforever a dit:
Et de plus si je clique 10 fois sur le lien j'aurais 10 fois le nom de mon dossier dans l'url

pour éviter ça, tes liens doivent être de la forme
Code:
/dossier1/page1.html

et non pas
Code:
dossier1/page1.html

le premier slash servant à dire "à partir de la racine du site" ;)

pour le .htaccess malheureusement, pas d'idées dans l'immédiat...
 
WRInaute impliqué
jiojioforever a dit:
alors pour appeler mon contenu j'ai donc :

Code:
if(empty($_GET['page']))
	 { 
	  include('page-principale.php');
				}
				  else
				{
      include($_GET['page']);
	 }

et comme lien :

Code:
<a href="/dossier1/page1.html">Pourquoi nous choisir ?</a><br>
<a href="/dossier2/page2.html">Audit Gratuit</a>

et voilà le message d'erreur :

Code:
Warning: main(dossier2/page2) [function.main]: failed to open stream: No such file or directory in /home.36/s/u/p/xxxxxx/www/pages-autorisees.php on line 8

Warning: main() [function.include]: Failed opening 'dossier2/page2' for inclusion (include_path='.:/usr/local/lib/php') in /home.36/s/u/p/xxxxxx/www/pages-autorisees.php on line 8

L'erreur est claire "dossier2/page2" n'existe pas...

Si /dossier2/page2.php existe, alors la règle doit etre:


Code:
RewriteEngine on
RewriteRule ^(.*).html$ /index.php?page=$1.php [L]

Le flag QSA ne sert a rien puisque tu met toi même une chaine après le ?
 
Discussions similaires
Haut