url rewriting ne fonctionne pas

  • Auteur de la discussion Auteur de la discussion link182
  • Date de début Date de début
WRInaute occasionnel
bonjour,

malgré ma recherche sur le forum, je n'arive toujours pas à faire fonctionner l'URL rewriting sur mon vds. il me fait un "page not found".

J'ai mis dans le httpd.conf tous les AllowOverride à All
Dans mon .htaccess voici ce que j'ai mis :

RewriteEngine on
RewriteBase /
RewriteRule (.*)(-.+)-([^-]+)-([^-&]*)([^-]*)\.html $1$2&$3=$4$5\.html [N]
RewriteRule (.*)-([^-]+)-([^-]*)(.*)\.html $1.php?$2=$3$4 [L]
RewriteRule ^(.*).html $1.php [L]

le mod_rewrite est bien chargé dans la conf d'apache...

qui peut m'aider ? car la je vois pas...

merci
 
WRInaute passionné
tu as pensé a redemarrer apache ?

est ce que tu as AccessFileName .htaccess dans ton httpd.conf ?


Procéde par etape, fais d'abord un htaccess avec un deny from all (par exemple) à la racine pour voir si ton htaccess est bien pris en compte et uen fois que t'es sur qui soit bien pris en compte teste avec des rewrites mais n'oublie pas mod_rewrite
 
WRInaute occasionnel
tu as pensé a redemarrer apache ?

oui -> apachectl restart

est ce que tu as AccessFileName .htaccess dans ton httpd.conf ?

Mes .htaccess sont bien pris en compte, je m'en sers pour faire une partie admin (demande un login/pass pour acceder à la partie admin)

le mod_rewrite est bien activé, confirmé par phpinfo()

On peut voir sur la page d'accueil de mo nsite que l'url rewriting ne fonctionne pas (les liens vers le forum en bas à gauche)
 
WRInaute passionné
Si j'ai bien compris, je crois qu'il y a un truc que t'as oublié dans l'url rewriting :
Modifier tous les liens internes

Maintenant que nous avons défini les schémas d'URL et créé les règles de réécriture, il reste à vérifier que dans tout le site, tous les liens utilisent le bon schéma d'URL.

En effet, les règles de réécriture du fichier .htaccess ne suffisent pas à ce que tout votre site soit au nouveau format, avec des URL propres ! C'est à vous de changer la façon d'écrire les liens, que ce soit dans des pages statiques ou dans des pages dynamiques.

Bien entendu, vous devez pouvoir sauter cette étape si vous incluez la gestion de la réécriture d'URL dès la création du site, puisque vous aurez pris soin de générer dès le début des liens aux bons formats.

cf : https://www.webrankinfo.com/analyses/aut ... riting.php


Edit : j'ai peut pas bien compris donne un exemple de ce que tu voudrais: url intiale et url rewrité
 
WRInaute occasionnel
pardon, j'avais oublié de préciser que j'utilise cette fonction suivante (trouvé sur le forum) sur mes liens :

Code:
function lienurlrewriting($url) {
	if (eregi("(.*).php(.*)",$url,$regs)) {
		$monurl = $regs[1];
		$geturl = $regs[2];
		while (eregi("(.*)(\?|&)([^=]+)=([^=]*)(.*)",$geturl,$regs)) {
			$geturl = $regs[1]."-".$regs[3]."-".$regs[4].$regs[5];
		}
		$url = $monurl.$geturl;
	} elseif(eregi("(.*).php",$url,$regs)) {
		$url = $regs[1];
	}
	return $url.".html";
}

Cela fonctionne bien en local (easyphp), mais ne fonctionne pas sur mon serveur

exemple, ce lien qui marche en local, ne marche pas sur mon serveur :
http://www.camelya.com/voir_msg-id-105-debut-0.html
 
WRInaute occasionnel
J'ai toujours un soucis avec l'URL Rewriting :

j'utilise ce code :
RewriteEngine on
RewriteRule (.*)(-.+)-([^-]+)-([^-&]*)([^-]*)\.html $1$2&$3=$4$5\.html [N]
RewriteRule (.*)-([^-]+)-([^-]*)(.*)\.html $1.php?$2=$3$4 [L]
RewriteRule ^(.*).html $1.php [L]



Cela marche, mais il ne va pas chercher le fichier dans bon repertoire.

Exemple :
www.camelya.com/profil-id-299.html
donne l'erreur suivante :
/camelya/profil.php not found

alors qu'il devrait regarder dans le repertoire courant profil.php

pourquoi rajoute-t-il /camelya/ ?
 
WRInaute occasionnel
personne n'aurait une petite idée ? Car l'url rewriting fonctionne presque, il suffit de retirer /camelya/, mais je ne sais pas comment faire...
 
WRInaute accro
(.*) doit prendre le répertoire avec, essaie juste
^(a-z)-([^-]+)-([^-]*)(.*)\.html$
au lieu de (.*)-([^-]+)-([^-]*)(.*)\.html

ps : ou un truc qui convient mieux que (a-z)
 
WRInaute occasionnel
heu je suis un peu nul dans les exp regulieres, alors je vois pas trop à quoi ça correspond,

dd32, j'ai remplacé tous les (.*) par ^(a-z), voici le mon .htaccess modifié :

RewriteEngine on
RewriteRule ^(a-z)(-.+)-([^-]+)-([^-&]*)([^-]*)\.html $1$2&$3=$4$5\.html [N]
RewriteRule ^(a-z)-([^-]+)-([^-]*)(.*)\.html $1.php?$2=$3$4 [L]
RewriteRule ^(a-z).html $1.php [L]


Mais cela marche pas mieux,exemple :

http://www.camelya.com/profil-id-1097.html
--> The requested URL /profil-id-1097.html was not found on this server.
 

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