Probleme url rewriting.... encore :@

WRInaute discret
J'ai un problème encore une fois, voici le htaccess :

Code:
AuthUserFile /home/rflx/domains/3asy-dollars.info/XXX
AuthName "XXX"
AuthType Basic

<limit GET POST>
require valid-user
</limit>

RewriteEngine on
Options +FollowSymlinks
RewriteRule ^(.+)-([0-9]).html$ categorie.php?cat=$1&page=$2 [L]

RewriteRule ^(.+).html$ fiche.php?site=$1 [L]
RewriteRule ^lol-(.+).html$ $1.php [L]

Il prend pas en compte la dernière variable ^lol (qui est un exemple pour le moment).

Comment résoudre le problème ?

Merci, Ô maître du rewriting :).


EDIT : Pourquoi .../mails-clics-remuneres.html renvoie pas sur la même page que mails-clics-remuneres-1.html ?
 
WRInaute discret
C'est réglé ça :) Merci.

Par contre : Pourquoi .../mails-clics-remuneres.html renvoie pas sur la même page que mails-clics-remuneres-1.html ?
 
WRInaute passionné
l'url mails-clics-remuneres-1.html correspond à la règle :
Code:
RewriteRule ^(.+)-([0-9]).html$ categorie.php?cat=$1&page=$2 [L]
l'url mails-clics-remuneres.html ne correspond pas à cette règle car par fini par un tiret et un numérique donc correspond à la règle :
Code:
RewriteRule ^(.+).html$ fiche.php?site=$1 [L]
 
WRInaute discret
Comment faire pour que .../mails-clics-remuneres-1.html renvoit sur .../mails-clics-remuneres.html ?


Merci à toi de ton aide :).
 
WRInaute impliqué
webmasterlamogere a dit:
l'url mails-clics-remuneres-1.html correspond à la règle :
Code:
RewriteRule ^(.+)-([0-9]).html$ categorie.php?cat=$1&page=$2 [L]
l'url mails-clics-remuneres.html ne correspond pas à cette règle car par fini par un tiret et un numérique donc correspond à la règle :
Code:
RewriteRule ^(.+).html$ fiche.php?site=$1 [L]

Donc pour que:
/mails-clics-remuneres-1.html renvoit sur .../mails-clics-remuneres.html

Code:
RewriteRule ^mails-clics-remuneres-([0-9]).html$ mails-clics-remuneres.html [L]

Mais ne redirige que cette page... Après tu sais comment récupérer la variable au cas où nécessaire.
 
WRInaute discret
Bon, étant un boulet né en rewriting, je vais poster ici le htaccess entier et esperer de l'aide :p !

Code:
RewriteEngine on
Options +FollowSymlinks
RewriteRule ^(.+)-([0-9]).html$ categorie.php?cat=$1&page=$2 [L]
RewriteRule ^astuce-(.+).html$ astuces.php?nom=$1 [L]
RewriteRule ^astuces-(.+).html$ astuces.php?site=$1 [L]
RewriteRule ^fiche-(.+).html$ fiche.php?site=$1 [L]
RewriteRule ^(.+).html$ index.php?p=$1 [L]

J'aimerais que mails-clics-remuneres-1.html renvoit sur mails-clics-remuneres.html (après je veux que ça le fasse pour chaque page du script :) !

Volontairement je poste pas le lien de la verison test pour pas que Google référence la page mais c'est 3asy-dollars.info/_V3____/mails-clics-remuneres-1.html (enlever les underscores) !

Si possible, si vous pouvez me donner le nouveau htacces avec les autres paramètres pour que tout marche :) !

Bonne soirée,
Rflx - Nub en réecriture -
 
WRInaute passionné
je crois que c'est la demande qui n'est pas claire. Si tu veux réécrire une seule url, il faut écrire :
Code:
RewriteRule url_virtuelle_tapée_par_le_visiteur_du_site url_réelle_de_la_page_qui_affiche_le_resultat

donc:
Code:
RewriteRule mails-clics-remuneres-1\.html$ mails-clics-remuneres.html

antislash avant le . car sinon il veut dire "n'importe quel caractère".

Sinon, il faut regarder les tutos facile à trouver pour bien comprendre le fonctionnement avec des paramètres transmis.
 
WRInaute discret
URL virtuelle tapée : mails-clics-remuneres.html
URL réelle : mails-clics-remuberes-1.html

En bref, si j'ai compris il faut inverser ce que tu viens de dire non ? :) !

Pour être clair, google et cie devraient voir la page mails-clics-remuneres.html pour l'indexation :).
 
WRInaute discret
Rien compris.

En bref, je dois le mettre avant tout le reste, mais si après j'en ai plein (une dizaine) ça va aller quand même ?
 
WRInaute passionné
En résumé je mettrais dans cet ordre (en premier les règles avec le moins de parties variables et en dernier les règles les plus générales) :
Code:
RewriteEngine on
Options +FollowSymlinks
RewriteRule mails-clics-remuneres\.html$ mails-clics-remuneres-1.html
RewriteRule ^astuce-(.+)\.html$ astuces.php?nom=$1 [L]
RewriteRule ^astuces-(.+)\.html$ astuces.php?site=$1 [L]
RewriteRule ^fiche-(.+)\.html$ fiche.php?site=$1 [L]
RewriteRule ^(.+)-([0-9])\.html$ categorie.php?cat=$1&page=$2 [L]
RewriteRule ^(.+)\.html$ index.php?p=$1 [L]
 
WRInaute discret
J'ai mis ce que tu as dit là, mais ça ne marche toujours pas, tu peux vérifier par toi même en allant sur mon site et en rajoutant /V3 :).

Je ne comprend vraiment pas pourquoi.
 
WRInaute discret
La page -1 est toujours accessible ce qui cause du duplicate content donc faut modifier ça :p !

Ca serait super bien ;) !


(Car le script met automatiquement un -1 (puis 2...) pour les pages...)
 
WRInaute passionné
il y a deux choses à faire :
modifier tes pages HTML pour générer les liens sans le -1.
ajouter une redirection 301 de l'url -1 vers celle sans -1 :

Code:
RewriteRule mails-clics-remuneres-1\.html$ mails-clics-remuneres.html [R=301,L]

et normalement ca doit marcher.
 
WRInaute discret
Modifier... > Hein ? Si tu parles de modifier le menu, ok... mais sinon je comprend pas.

Ajouter > Là je l'ai mis, regarde où ça redirige oO !

V3/mails-clics-remuneres.html (pareil pour la page avec -1)
 
WRInaute passionné
je parle bien de changer le menu.

la redirection ne marche pas car je pense qu'il faut donner l'url complète de la page de destination dans la redirection 301 :
-http://www.3asy-dollars.info/V3/mails-clics-remuneres.html
 
WRInaute discret
Ouf' j'ai eu peur :p ! Oui pour le menu, c'etait provisoire (d'où la version pas encore sortie :)).


Sinon, là ça marche pour la redirection, mais la page renvoyée est une erreur.

On avance doucement mais surement, non ? :).

Donc, si tu as une nouvelle explications :p !
 
WRInaute passionné
il conseille de gérer la redirection 301 en PHP :
si l'url demandée est différente de celle attendue, => redirection 301 avec header.
Code:
$url_saisie_complete = str_replace($_ENV['SCRIPT_URL'], $_ENV['REQUEST_URI'], $_ENV['SCRIPT_URI']);
$url_attendue = 'http://tonsite.fr/tonrepertoire/tapage.html';
if ($url_saisie_complete <> $url_attendue) {
	header("Status: 301 Moved Permanently", false, 301);
	header("Location: $url_attendue");
	exit;
}
la variable $url_saisie_complete contient l'url saisie par l'utilisateur avec les paramètres.
la variable $url_attendue doit contenir l'url que tu attends en fonction des paramètres (numéro de page, ...). Elle peut être déterminé simplement par une fonction.
 
WRInaute discret
Ca ne marche toujours pas en le mettant en haut de categorie.php :( !


C'est pas grâve, je laisse comme ça, ça ne nuit pas au référencement ?!
 
Discussions similaires
Haut