[Réglé] Problème d'écriture d'URL avec Apache et .htaccess

Nouveau WRInaute
Bonjours,
apres avoir parcouru une disaines de site et poser de nombreuses questions sans reponse je suis tomber par hasard sur celui si et j'ai remarquer qu'il y avait une partie dedier au fichier .htaccess ! ...

:( Sa tombe bien car j'ai un leger probleme avec celui si !

J'ai fait un premier code qui marche :
Code:
RewriteEngine on
RewriteRule ^([a-z]+)\.html$  ?page=$1 [L]
L'adresse de mon site est ( http://www.chamsou.webzzanine.net/accueil.htm ) vous pourrez voir ce que cela donne ...

ensuite j'ai refait le code :
Code:
RewriteEngine on
RewriteRule ^([a-z]+)\.html$  ?page=$1 [L]
RewriteRule ^([a-z]+)_([a-z]+)\.html$ ?page=$1&type=$2 [L]
pour pouvoir prendre en compte un second parametre mais sa na pas marcher !!!*
( portefolio_design.htm ==> ?page=portefolio&type=design )

Voici le type d'url qui sont present ou pourrait etre prensent dans l'avenir et que je souhaite prendre en compte :
Code:
?page=portefolio&type=design
?page=portefolio&type=php
?page=services&type=tuto
etc ...
Mon site est en construction et je pense crée d'autre page avec plus de parametre ... un peu comme sa ( ?page=services&type=design&nom=dark ... )
Mais avant tout je souhaite avoir un systeme fiable pour ameliorer le referencement de mes pages ;) mais aussi simplifier l'url qui s'affichera au visiteur !!!

Je voudrai donc savoir si vous pouviez m'aider en m'expliquand ou se trouve l'erreur ou du moin qu'est ce que j'ai oublier :(
Merci d'avance !
 
A
Anonymous
Guest
Tentes de mettre le chemin complet
Code:
RewriteEngine on 
RewriteRule ^([a-z]+)\.html$  /page.php?page=$1 [L] 
RewriteRule ^([a-z]+)_([a-z]+)\.html$ /page.php?page=$1&type=$2 [L]
où page.php est correspond à ton code
 
Nouveau WRInaute
:) ok j'avait remarquer cette diference ici est la mais je n'y avait pas fait attention ;) je vai tester sa le plus tot possible
Merci !
 
Nouveau WRInaute
je vien de tester plusieur cas* mais sa ne marche pas ;) merci quand meme !!!
*( /index.php?page=$1 index.php?page=$1 /?page=$1 )
 
A
Anonymous
Guest
tout cela est très étonnant, par hasard, tentes encore un truc dans ce genre
Code:
RewriteEngine on 
RewriteRule ^([a-z]+)_([a-z]+)\.html$ http://ton.domaine//page.php?page=$1&type=$2 [L]
RewriteRule ^([a-z]+)\.html$  http://ton.domaine/index.php?page=$1 [L]
Au pire redirige tout vers ta page d'index
Code:
RewriteRule ^(.*)$ index.php [L]
et parse la variable $_SERVER['REQUEST_URI'] dans ton code
Code:
if($_SERVER['REQUEST_URI'] == "/index.php") {
 $_SERVER['REQUEST_URI'] = "/";
}

$redirect = ereg_replace("^/(.*)\.html$", "\\1", $redirect);
if(!$empty(redirect)) {
    $params= explode("/", $redirect);
    $page=$params[0];
    $type=$params[1];
} else {
    /* c'est ta page d'accueil */
}

Quel est le code HTTP retourné par le serveur?
Fais tu tes tests sur un serveur http chez toi ou directement sur ton site?
As tu des accès à tes fichier error.log et access.log et éventuellement rewrite.log (en modifiant ton httpd.conf d'apache comme suit)
Code:
RewriteLog /path/rewrite.log
RewriteLogLevel 3
 
Nouveau WRInaute
:wink: Malheureusement sa ne marche pas non plus mais pour etre sure j'ai tester sur un deuxieme hebergeur et aparament le probleme etait le meme !!!

1) ce code ok sa marche :
Code:
RewriteEngine on
RewriteRule ^([a-z]+)\.html$  ?page=$1 [L]

2) mais celui la non :

Code:
RewriteEngine on
RewriteRule ^([a-z]+)\.html$  ?page=$1 [L]
RewriteRule ^([a-z]+)_([a-z]+)\.html$  ?page=$1&type=$2 [L]

3) donc le probleme doit surement venir de la :
Code:
RewriteRule ^([a-z]+)_([a-z]+)\.html$ ?page=$1&type=$2 [L]

mais j'ai beau regarder encore et encore je comprend pas pk sa ne marche pas ...
quelqu'un aurai t'il un code simple d'url rewrit qui marche ne serai ce que pour voir un peu si les codes diférent !

ps: si vous avait un lien qui explique tout sa et meme si je l'ai deja vue sa serai simpas de l'ecrire :wink: Merci ! ...
 
A
Anonymous
Guest
Déposes une page nommée phpinfo.php avec le code suivant :
Code:
<?php
phpinfo();
?>
et dans ton .htaccess
Code:
RewriteRule ^([a-z]+)\.html$  /phpinfo.php?page=$1 [L]
RewriteRule ^([a-z]+)_([a-z]+)\.html$ /phpinfo.php?page=$1&type=$2 [L]
Et appelles des page en .html à partir du browser.
- http://www.chamsou.webzzanine.net/page1.html
- http://www.chamsou.webzzanine.net/page2_param.html
Qu'obtiens tu?

Attention: ce sont des html qui sont gérés ici et non des htm comme sur ton site.
 
Nouveau WRInaute
darkfire a dit:
Attention: ce sont des html qui sont gérés ici et non des htm comme sur ton site.

:oops: je tien a m'escuser car les codes etait bon depuis le debut je n'arriver pas a les utiliser simplement par une erreur d'attention de ma part en effet j'ai mit html dans le code et htm sur mes pages et dans les url tester ...
:wink: je tient donc à te remercier darkfire pour ta patience et tout ce que tu a dit dans ce poste je vai tenter d'avoir un oeil moin distré à l'avenir mais d'un autre coté j'ai aussi appris beaucoup en venant ici :)
bon je me relance dans les codes !!!
et encore Merci pour tout ...

ps : Etrange la premiere ligne aussi contient l'extention html et sa a quand meme marcher :lol:
 
A
Anonymous
Guest
De nada...

test quand même le phpinfo, avec cette fois ci l'extension html, tu verras c'est très instructif aux niveau de toutes les variables d'environnement que l'on récupère.
 
A
Anonymous
Guest
le plus important:

1 - version php sur le serveur et sa configuration

- version utile par rapport à l'implémentation et la validité des fonctions et lors de changement majeur de version (nouveaux concepts, etc...)

- dans ce post la personne peut effectivement confirmer que la valeur allow_url_fopen de la configuration php est à "off".

2 - les headers HTTP de ta requête et de la réponse
(enfin pour ça y a d'autres outils)

3 - toutes les variable d'envirronement générées par ta requête sur le serveur HTTP -> _SERVER["var"] (en bas de page) qui sont utlisables dans tes scripts (variable super globale $_SERVER["xx"])
-> a tester sans ou lors de redirection
 
Discussions similaires
Haut