htacess avec include

  • Auteur de la discussion Auteur de la discussion PadaBen
  • Date de début Date de début
WRInaute discret
Bonjour, apres pas mal d'heures à comprendre l'url rewriting, j'ai commencé à écrire mon fichier htaccess

je n'ai pas de variaable avec base de donnée, je n'ai que une page principale index.php et 3 includes.php , mon menu étant donc écrit sous la forme :
Code:
if (!isset($_GET["page"])){
									include ('contenu.php');
									}					
									else { 
									if	($_GET["page"]=="detail1"){
									include ('detaildescom.php');
									}
									else if ($_GET["page"]=="detail2"){
									include ('votre_detail.php');
									}
									else if	($_GET["page"]=="detail3"){
									include ('nous_contacter.php');
									}
									}
								?>
et donc les liens écrites sous la forme :
<a href="index.php?page=detail1">detaildescommandes</a>

j'ai donc écrit mon .htacces :

Code:
ErrorDocument 404 http://www.monsite.com/erreur.php
ErrorDocument 403 http://www.monsite.com/erreur.php
DirectoryIndex http://www.monsite.com/html/index.php
#
options -indexes
"
Options +FollowSymlinks
#
RewriteEngine on
#
RewriteCond %{HTTP_HOST} ^http://www.monsite.com$
#
RewriteRule ^(.*)\.html$ index.php?page=$1 [L]
#
RewriteRule ^[[:alpha:]]\.html$ page=[[:alpha:]] [L]
#
RewriteRule ^html/detaildecom\.html$ html/index.php?page=detail1   [QSA,R=301]
RewriteRule ^html/votre_detail\.html$ html/index.php?page=detail2
RewriteRule ^html/nous-contacter\.html$ html/index.php?page=detail3 [L]

et j'obtiens une erreur. Je n'ai que ces 3 pages à réécrire, c'est pourtant simple comparé aux réécritures complexes avec des bdd.

Quelqu'un pourrait t'il l'éclairer si j'ai des erreurs ( ce dont je ne doute pas) mon hébergeur est Celeonet et prend bien en compte l'url rewriting.

Merci pour vos informations.

Pben

-- edit HawkEye --
[ code] & [ /code] améliorent grandement la lisibilité ;)
 
WRInaute discret
PadaBen a dit:
et donc les liens écrites sous la forme :
--<a href="index.php?page=detail1">detaildescommandes</a>--

Pben

salut,
tu obtiens quoi comme erreur ?

ensuite le petit bout de code que je cite la, c'est ce qu'il y'a dans ton code php après mise en ligne du htaccess ?

re-ensuite : mieux vaut ne pas faire une serie de if pour tes includes mais un switch avec un case default et pourquoi pas une verification de l'existence du fichier à inclure sur ton serveur.....
 
WRInaute discret
SAlut etrusco & co

j'obtiens un erreur 500.
quand je lis placer le fichier .htacces à la racine du site, ou dans le répertoire ou les redirections doivent etre effectuées. je comprend que je dois donc faire 2 fichiers htacces.
le 1er à la racine de l'herbergement , avant le www qui peut contenir le regles concernant les sous domaines et les redirectinos des pages 403 et 404.
et ensuite le second, dans le répertoire ou j'ai effectivement mes fichiers index.php et autres includes.

Code:
 <a href="index.php?page=detail1">detaildescommandes</a>
est le code de mon menu, lorsque je clike sur détaildescommandes, le php fait afficher la page correspondante ( dite dans les if, voir 1er post )

lors de l'erreur 500 j'ai donc la page de l'erreur 500 universelle je crois...

"re-ensuite : mieux vaut ne pas faire une serie de if pour tes includes mais un switch avec un case default et pourquoi pas une verification de l'existence du fichier à inclure sur ton serveur....." ---> alors là, je pige pas trop l'idée du switch, je débute en php... peut tu m'en dire plus ?

Merci de ton aide @+

Pben
 
WRInaute discret
Re: SAlut etrusco & co

PadaBen a dit:
j'obtiens un erreur 500.
quand je lis placer le fichier .htacces à la racine du site, ou dans le répertoire ou les redirections doivent etre effectuées. je comprend que je dois donc faire 2 fichiers htacces.
le 1er à la racine de l'herbergement , avant le www qui peut contenir le regles concernant les sous domaines et les redirectinos des pages 403 et 404.
et ensuite le second, dans le répertoire ou j'ai effectivement mes fichiers index.php et autres includes.

Code:
 <a href="index.php?page=detail1">detaildescommandes</a>
est le code de mon menu, lorsque je clike sur détaildescommandes, le php fait afficher la page correspondante ( dite dans les if, voir 1er post )

lors de l'erreur 500 j'ai donc la page de l'erreur 500 universelle je crois...

"re-ensuite : mieux vaut ne pas faire une serie de if pour tes includes mais un switch avec un case default et pourquoi pas une verification de l'existence du fichier à inclure sur ton serveur....." ---> alors là, je pige pas trop l'idée du switch, je débute en php... peut tu m'en dire plus ?

Merci de ton aide @+

Pben

pour le switch ==>> --http://www.phpdebutant.org--

c'est plus simple et plus complet mais en gros tu dois faire un truc du genre

Code:
<?php
switch ($ma-variable)
{
case 'valeur-de-ma-variable':
include('page_en_fonction_de_ma_variable.php);
break;
.... autant de fois que necessaire les trois lignes ci dessus puis pour terminer : 
case default:
include('pagepardefaut.php');
break;
?>

ensuite dans ton code php, lorsque le htaccess ne plante pas, tu dois modifier la construction des liens par la forme que tu a choisi dans le htaccess

Code:
<a href="index.php?page=detail1">detaildescommandes</a>

donc ça c'est pas bon.... si ta page devait devenir detail-des-commandes-1.html, tu modifie en dur dans ton code par

Code:
<a href="detail-des-commandes-1.html">detaildescommandes</a>

en gros, sache que htaccess ne modifie pas en temps réel et tout seul tes url : le principe est tu lui donnes des regles de réécritures à suivre et lui il te les applique....

pour l'erreur 500 c'est qu'il y'a une grosse erreur dans ton htaccess ou que ton serveur ne le supporte pas avec la syntaxe que tu a employé.
je n'ai pas le temps de bien me pencher sur ton cas particulier mais tu a deja des pistes de reflexions....

EDIT : ton fichier htaccess est mal renseigné et le :alpha: ça n'existe pas normalement ou en tous cas j'ai jamais croisé ce type de " variables " dans un htaccess mais je ne suis pas un expert donc je sais pas.
 
WRInaute discret
Yep Gros merci etrusco

Merci pour toutes ces infos, je me met dedans avec tout ce que tu viens de me dire...

merci pr le lien, et je v voir chez mon hébergeur prkoi ca plante, je me dis ptet y'a les lignes

options -indexes
Options +FollowSymlinks

qui ne fonctionnent pas avec Celeonet...

je recherche ses infos, encore merci

@+
Pben
 

➡️ 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