Bonjour à tous,

J'ai créé mes sites et template sur ce modèle (dynamique) :

http://forum.alsacreations.com/topic-23-38756-1-Header---footer-et-contenu.html

Afin de réécrire mes url, d'après ce que j'ai pu comprendre, il y aurait plusieurs solutions :

- indexer mes id de page dans une bdd et affecter à chacune les mots clé url "propres"
- réécrire les url d'après une balise méta que je pourrais stocker en haut de chaque page

En l'occurrence, y a t il une solution précise pour ce cas de figure et surtout appréciée des moteurs de recherche ?

D'avance merci à vous pour votre aide.
Smiley rolleyes

Pour commencer je pense que tu es dans la mauvaise section... Donc un modérateur va certainement déplacer ton post.

Ensuite, ton exemple n'est pas très concret, ça serait plus simple que tu postes une url tirée de ton exemple, et aussi que tu nous explique le "modèle dynamique" que tu utilises afin qu'on comprenne les tenant de ton problème...

Puis que tu nous donnes un exemple concret de ce que tu souhaites obtenir comme url afin qu'on ai aussi les aboutissants...

Je ne vois pas trop le lien entre une balise meta et de l'url rewriting...

Tu peux stocker dans ta base de donnéer un "titre" à afficher dans l'url, on apelle ça courament un slug, à toi de voir si tu veux le générer/retrouver à la vlée (créé à partir du titre à l'execution de chaque page) ou si tu veux le conserver dans ta base de données...

Plus d'infos, meilleure place, et on va s'en sortir Smiley cligne
Bonjour,

Mes humbles excuses pour ces erreurs en cascade. Smiley confused

Le modèle suivant récupère les url de mes pages stockées en array et les présente sous la forme www.monsite.fr/index.php?id_page=1.

J'aimerai réécrire ces adresses comme elles le sont à la suite du nom de domaine et que l'url de la page d'accueil n'affiche plus le suffixe index.php.

Un grand merci et à votre disposition pour tout complément d'info.

Voici le script de ma page d'index :

<?php

$id_page = isset($_GET['id_page']) ? intval($_GET['id_page']) : 0;


$pages = array('accueil.php', 'formation-bureautique.php'...);

//formation-bureautique.php aura la forme www.monsite.fr//index.php?id_page=1 (accueil étant index)

if( $id_page > count($pages)-1 ) $id_page = 0;

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="FR" lang="FR">
<head>

//mes balises méta, script et lien css

</head>

<body>
<div id="main">


<div id="header">

<?php

require_once('header.inc.php');
?>
</div>


<div id="conteneur">
<div id="left-sidebar">

<?php

require_once('left-sidebar.inc.php');

?>

</div>

<div id="conteneur2">

<div id="contenu">
<?php

require_once('contenu.inc.php');

?>
</div>

<div id="right-sidebar">
<?php

require_once('right-sidebar.inc.php');
?>
</div>

<div class="clear2"></div>


</div>

<div class="clear1"></div>


</div>


<div id="footer">

<?php

require_once('footer.inc.php');

?>
</div>
</div>
</body>

</html>
[code]
Modifié par krishna13 (03 Jul 2010 - 11:31)
Et bien pas facile sur le modèle de site web dynamique que je suis venu chercher ici...

Je ne trouve pas la soluce avec htaccess, et l'utilisation de mysql pour réécrire l'url en cliquant sur un lien écrit ne s'adapte pas à mes images cliquables.

Personne n'aurait un début d'idée svp?

D'avance merci.
Hello krishna13 et bienvenue, Smiley smile

ta récupération de id_page me semble correcte... mais je ne comprends pas très bien ce que tu veux faire. Smiley murf

Pour te débarrasser de index.php dans l'url tu peux faire par exemple :

.htaccess
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*-([0-9]+)$	index.php?id_page=$1 [QSA,L]
RewriteRule ^.*$ 			index.php?id_page=0 [QSA,L]

index.php
<pre>
<?php
print_r($_GET);
?>
</pre>


pour tester :
www.monsite.com/blabla
www.monsite.com/blabla-333
D'autre part, lorsque je colle le code que tu m'as donné dans le htaccess, ma page d'index se destructure (j'ai déjà des redirections vers ma page d'index de mes anciennes pages html);

le code à coller dans la page d'index m'affiche Array () sur internet au dessus du header.

Y a t il un endroit spécifique pour chaque code à coller?

D'avance merci. Smiley biggrin
Quelque chose comme ça ?

.htaccess
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.php$	index.php?page=$1 [QSA,L]

index.php
<?php
$pages = array('accueil', 'formation-bureautique', 'autre');
$page = !empty($_GET['page']) && in_array($_GET['page'], $pages) ? $_GET['page'] : 'accueil';
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test</title>
</head>
<body>
<?php
require($page.'.inc.php');
?>
</body>

accueil.inc.php
<h1>Accueil</h1>
<p>Lorem Ipsum</p>
<p><a href="formation-bureautique.php">Formation Bureautique</a></p>

formation-bureautique.inc.php
<h1>Formation Bureautique</h1>
<p>Lorem Ipsum</p>
<p><a href="accueil.php">Accueil</a></p>
Merci de ta réponse.

Dois-je tout reprendre de cette manière ou bien n'as tu peut-être pas vu le code que j'ai laissé plus haut ?
(seuls les éléments comme header, footer... possèdent l'extension .inc.php alors que les pages qui s'intègrent au contenu portent le nom normal acceuil.php... que j'aimerai bien récupérer dans l'url).

Phpmysql, htaccess ou bien les 2?

D'avance merci. Smiley cligne
Rebonjour,

J'ai repris le code que tu m'as donné avec un peu plus de recul. Je ne bouge pas de la page d'accueil en cliquant sur le lien href="formation-bureautique.php" ; comme il ne trouve pas la page formation-bureautique.inc.php, il me redonne la page d'accueil.

D'avance merci.
Salut,

krishna13 a écrit :
comme il ne trouve pas la page formation-bureautique.inc.php, il me redonne la page d'accueil.
L'extension .inc.php est une convention d'écriture pour différencier facilement les pages incluses des autres. Cela dit je ne comprends pas bien ton problème : qu'est-ce qui t'empêche de changer l'extension des pages ou de supprimer le .inc du code que je te donnais plus haut ?
Bonjour,

Merci de ta réponse. En fait, j'ai essayé plusieurs combinaisons.

La finalité est que sur un lien href du contenu qui est par défaut la page d'accueil, si je donne l'url d'une page, celle-ci viendra s'ouvrir sans le reste de l'index dynamique autour (les sidebar...).

Je t'envoie les codes des index/htaccess/accueil de la dernière combinaison testée :

index.php



<?php 
$pages = array('accueil', 'formation-bureautique'); 
$page = !empty($_GET['page']) && in_array($_GET['page'], $pages) ? $_GET['page'] : 'accueil'; 
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="FR" lang="FR">
<head>
</head>
<body>

<div id="main">

<div id="header">


  <?php

require_once('header.inc.php');
?>
</div>

<div id="conteneur">
<div id="left-sidebar">

<?php

require_once('left-sidebar.inc.php');

?>

</div>

<div id="conteneur2">

<div id="contenu">
<?php 
require($page.'.inc.php'); 
?> 
</div>

<div id="right-sidebar">
<?php

require_once('right-sidebar.inc.php');
?>
</div>

<div class="clear2"></div>


</div>

<div class="clear1"></div>


</div>


<div id="footer">

<?php

require_once('footer.inc.php');

?>
</div>
</div>

</body>

</html>



.htaccess


Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^.*-([0-9]+)$    index.php?id_page=$1 [QSA,L] 
RewriteRule ^.*$             index.php?id_page=0 [QSA,L]


accueil.inc.php (3 formules différentes de lien href pour trouver la soluce + vite)


<link href="style.css" rel="stylesheet" type="text/css" />
</style>

<p><img src="image1.jpg" width="550" height="129" border="0" usemap="#Map" />
<map name="Map" id="Map"><area shape="rect" coords="302,22,519,63" href="formation-bureautique.php" />
</map></p>

<p><img src="image2.jpg" width="550" height="141" border="0" usemap="#Map2" />
<map name="Map2" id="Map2"><area shape="rect" coords="302,40,519,80" href="index.php?page=$2" />
</map></p>
<p><img src="image3.jpg" width="550" height="135" border="0" usemap="#Map3" />
<map name="Map3" id="Map3"><area shape="rect" coords="302,34,519,75" href="formation-bureautique.inc.php" />
</map></p>


formation-bureautique.inc.php ou formation-bureautique.php

<link href="style.css" rel="stylesheet" type="text/css" />

                          </style>

rien n'y fait, la page s'affiche au mieux sans la structure dynamique autour (sidebar...)

encore merci.
Rebonjour,

J'enrage et me demande si la réécriture d'url est vraiment possible pour ce modèle de site web dynamique... J'ai perdu 75% de mon référencement depuis juin. J'ai repris des modèles d'url rew. sur wordpress... mais je n'ai pas trouvé la soluce.

Qui pourrait m'aider svp? Je vais certainement commencer à boire.

D'avance merci.
Bonjours.

J'ai un problème j'ai Wamp et j'ai activer le: rewrite_module mais ca ne marche pas.

J'ai un dossier test/test.html qui doit etre renommer en test.php



#--------------------------------------------------
# Répertoire : /test/
#--------------------------------------------------

# Le serveur doit suivre les liens symboliques :
Options +FollowSymlinks

# Activation du module de réécriture d'URL :
RewriteEngine on

#--------------------------------------------------
# Règles de réécriture d'URL :
#--------------------------------------------------

RewriteRule ^test.html$ /test/test.php [L]


Mais j'ai une erreur: "Not Found The requested URL /test/test.php was not found on this server."

Je trouve pas pourquoi.



Mon adresse est comme ça:
RewriteRule ^Listefilm-([A-Z]+)-([0-9]+)-([A-Z]+)\.html$ Listefilm.php?tbl=O&id=0&ltrl=O [L]
Modifié par loixi (06 Oct 2010 - 17:36)
j4AI réussis. Seule problème, j'ai beau modifier le lien ça m'affiche tout le temps le meme truck.

cE QUE je comprend pas, c'est que j'ai que les deux premier qui marchent:

rewriteRule ^Listefilm-A-0-A.php$ Listefilm.php?tbl=A&id=0&ltrl=A [L]
rewriteRule ^Listefilm-B-0-B.php$ Listefilm.php?tbl=B&id=0&ltrl=B [L]
rewriteRule ^Listefilm-C-0-C.php$ Listefilm.php?tbl=C&id=0&ltrl=C [L]
rewriteRule ^Listefilm-D-0-D.php$ Listefilm.php?tbl=D&id=0&ltrl=D [L]

Les deux autres lignes ne marchent pas Smiley sweatdrop


eDIT: ca marche^^. Je travaille sur l'autre partit jespère que je vais y arriver.
Modifié par loixi (06 Oct 2010 - 19:29)