knostra Posted March 25, 2010 Share Posted March 25, 2010 Bonjour à tous, Je souhaiterais avoir vos conseils pour un redirection htaccess, j'ai supprimé 2 dossiers et tout remis dans un autre dossier nommé "content" et j'ai fais une redirection htaccess comme ceeci: RewriteEngine OnRewriteRule ^main(.+)\.html$ /index.php?p=$1.php [QSA,L,R=301]RewriteRule ^prods/(.*)/(.+)\.*$ /index.php?p=$1.php [QSA,L,R=301] La redirection fonctionne assez bien le seul problème est que mes url ne sont pas comme je le souhaite elles sont comme ceci: www.monsite.com/index.php?p=/conseils.php alors que je les voudrais comme ça: www.monsite.com/conseils.php d'après ce que j'ai lu c'est l'instruction R dans [QSA,L,R=301] qui fait que /index.php?p= s'affiche mais bon même quand je le supprime sa s'affiche encore, pourtant quand je suis sur mon site et que je clique sur un lien que j'ai créé j'ai bien l'url écrite correctement Je fais aussi de la réécriture pour mes lien normaux qui s'affiche correctement comme ceci tout mon fichier htaccess: RewriteEngine OnRewriteRule ^main(.+)\.html$ /index.php?p=$1.php [QSA,L,R=301]RewriteRule ^prods/(.*)/(.+)\.*$ /index.php?p=$1.php [QSA,L,R=301]RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php?p=$1 [QSA,L] et voici mon fichier index.php: <?phpif(!isset($_GET["p"])){ $_GET["p"]="index.php"; }if(!file_exists("content/".$_GET["p"])){ $_GET["p"]="404.php"; }ob_start();include "content/".$_GET["p"];eval($content);$content = ob_get_contents();ob_end_clean();include "template.php";?> voilà quand je clique sur mes lien la réécriture ce fait bien par contre quand je viens de google avec un lien référencé qui contient le nom d'un des répertoire que j'ai supprimé la réécriture ce fait mais elle affiche la variable $_GET et je trouve sa pas très bien autant au niveau visuelle que pour le référencement. google référence mon adresse comme ceci: www.monsite.com/main/conseils.php je fais un traitement via htaccess qui me donne une url comme ceci: www.monsite.com/index.php?p=/conseils.php alors que je les voudrais comme ça: www.monsite.com/conseils.php désolé si je me suis mal expliqué c'est un peu dur à faire comprendre. merci Link to comment Share on other sites More sharing options...
Jeanluc Posted March 25, 2010 Share Posted March 25, 2010 Bonjour, Pour que www.monsite.com/main/conseils.html devienne www.monsite.com/conseils.php, je ferais ceci: RewriteRule ^main/(.+)\.html$ /$1.php [L,R=301] au lieu de RewriteRule ^main(.+)\.html$ /index.php?p=$1.php [QSA,L,R=301] Jean-Luc Link to comment Share on other sites More sharing options...
knostra Posted March 25, 2010 Author Share Posted March 25, 2010 Super merci c'est exactement ce que je voulais faire. encore une petite question pour ma culture personnel qu'est-ce veut dire exactement tout ces choses: [QSA,L,R=301] et QSA particulièrement? merci je m'est tout de suite en résolu Link to comment Share on other sites More sharing options...
Jeanluc Posted March 25, 2010 Share Posted March 25, 2010 Tu trouveras la réponse à ta "petite question pour ma culture personnelle" dans les publications de Webmaster-Hub: Mod_rewrite, ou la réécriture des URL "à la volée". Jean-Luc Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now