v2mnet
-
Compteur de contenus
8 -
Inscrit(e) le
-
Dernière visite
Messages postés par v2mnet
-
-
Tu as raison jeroen, je n'ai pas de 301 avec ces regles, j'ai seulement 200 OK.
mais seulement pour les urls du type /produit-ref-123.html,
Pour les autres "urls d'origine" du style /produit.php?id=123, j'obtiens :
HTTP/1.1 302 Found
Status: 301 Moved Permanently
Mon problème est de savoir si ces 2 redirections successives (302 puis 301) sont nuisibles. On m'a que que oui ...
Dans cet esprit, mon idée est de supprimer la redirection 302 qui proviendrait du .htaccess. La 302 proviendrait du .htaccess car si les règles ne précisent pas 301, par défaut c'est 302. Donc je dois rajouter dans ces règles R=301 .... Mais c'est la syntaxe qui coince...
Les règles actuelles du htaccess sont les suivantes :
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)(-.+)-([^-]+)-([^-&]*)([^-]*)\.html$ $1$2&$3=$4$5\.html [N]
RewriteRule ^(.*)-([^-]+)-([^-]*)(.*)\.html$ $1.php?$2=$3$4 [L]
RewriteRule ^(.*).html$ $1.php [L]
La redirection 301 vient "probablement" du fichier produit.php lui-même qui commence comme ca :
if ( !empty( $_GET['id'] ) )
{ header("Status: 301 Moved Permanently");
$url = $_SERVER["REQUEST_URI"] ;
$url = str_replace("id", "ref", $url ) ; $url = url_rewrite($url) ;
header("Location: $url"); die;
}
elseif( strpos($_SERVER["REQUEST_URI"], "php" ) !== false)
{
header("Status: 301 Moved Permanently");
$url = $_SERVER["REQUEST_URI"] ;
$url = url_rewrite($url) ;
header("Location: $url"); die;
}
Comment modifier les 3 règles pour n'avoir qu'une redirection 301 au lieu d'une 302 (liée à .htaccess) d'abord puis 301 ensuite (liée au code php) ?
-
Les règles actuelles du htaccess sont les suivantes :
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)(-.+)-([^-]+)-([^-&]*)([^-]*)\.html$ $1$2&$3=$4$5\.html [N]
RewriteRule ^(.*)-([^-]+)-([^-]*)(.*)\.html$ $1.php?$2=$3$4 [L]
RewriteRule ^(.*).html$ $1.php [L]
pour les urls d'origine du style /produit.php?id=123, j'obtiens :
HTTP/1.1 302 Found
Status: 301 Moved Permanently
Comment modifier les 3 règles pour n'avoir qu'une redirection 301 au lieu d'une 302 (liée à .htaccess) d'abord puis 301 ensuite (liée au code php) ?
-
Avec des résultats comme les suivants :
pour les urls d'origine du style /produit.php?id=123
HTTP/1.1 302 Found
Status: 301 Moved Permanently
Pour les urls ré-écrites /produit-ref-123.html
HTTP/1.1 200 OK
est-ce que Google ne se mélange pas les pinceaux ? Et comment fait-il pour savoir s'il s'agit d'une redirection 301 ou d'une 302 ?
Merci par avance!
-
Plus précisément, je cherche à transformer les règles suivantes pour dire que ces redirections ne sont plus 302 (implictes) mais 301.
# htaccess
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)(-.+)-([^-]+)-([^-&]*)([^-]*)\.html$ $1$2&$3=$4$5\.html [N]
RewriteRule ^(.*)-([^-]+)-([^-]*)(.*)\.html$ $1.php?$2=$3$4 [L]
RewriteRule ^(.*).html$ $1.php [L]
Si quelqu'un a une idée !!
-
Non, ta proposition ne marche pas. Erreur 404
Je viens de lire que la règle RewriteRule ^(.*).html$ $1.php [L] va impliquer une redirection 302, car la 301 n'est pas indiquée explicitement.
Pour imposer une redirection 301, il faut rajouter [R=301,L], mais dans ce cas, il faut indiquer une url externe avec http://...
La règle suivante ne marche pas non plus. Erreur 404
RewriteRule (.*)\.html http://www.host.com/rep1/$1.php [R=301,L]
Comment transformer la règle RewriteRule ^(.*).html$ $1.php [L] pour dire que tous les scripts placés dans tous les sous répertoires du répertoire /shop/ sont concernés ?
Je sèche. Merci à vous tous par avance !
-
Bonjour à tous,
Je cherche à transformer environ 100 urls php en html pour le référencement.
url d'origine du style /produit.php?id=123
à transformer en /produit-ref-123.html
L'url rewriting fonctionne, mais pas la redirection 301. Voila ce que j'obtiens :
HTTP/1.1 302 Found
Status: 301 Moved Permanently
Comment modifier les règles ci-dessous pour dire que TOUTES les urls doivent être redirigées en 301, sachant que les scripts concernés sont répartis dans différents répertoires ?
Faut-il écrire la règle 3?
RewriteRule (.*)\.html http://www.host.com/rep1/$1.php [R=301,L]
RewriteRule (.*)\.html http://www.host.com/rep2/$1.php [R=301,L]
RewriteRule (.*)\.html http://www.host.com/rep3/$1.php [R=301,L]
etc... et idem pour les autres ??
# htaccess
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)(-.+)-([^-]+)-([^-&]*)([^-]*)\.html$ $1$2&$3=$4$5\.html [N]
RewriteRule ^(.*)-([^-]+)-([^-]*)(.*)\.html$ $1.php?$2=$3$4 [L]
RewriteRule ^(.*).html$ $1.php [L]
la fonction $url = url_rewrite( $url ) retourne bien la bonne url
Le fichier produit.php commence comme ca :
if ( !empty( $_GET['id'] ) )
{ header("Status: 301 Moved Permanently");
$url = $_SERVER["REQUEST_URI"] ;
$url = str_replace("id", "ref", $url ) ; $url = url_rewrite($url) ;
header("Location: $url"); die;
}
elseif( strpos($_SERVER["REQUEST_URI"], "php" ) !== false)
{
header("Status: 301 Moved Permanently");
$url = $_SERVER["REQUEST_URI"] ;
$url = url_rewrite($url) ;
header("Location: $url"); die;
}
-
Bonjour à tous,
Je viens de changer toutes les pages php du site en utilisant l'url rewriting et je me demande quand ces nouvelles pages html deviendront visibles sur google.
Au bout de combien de temps, par exemple la page html décrivant un de nos produits va-t-elle devenir visible http://www.v2m.net/boutique/achat/produit_...ls-ref-431.html
Si vous avez une idée, merci par avance.
Cordialement
Jean-Michel
Redirection 301 - url rewriting
dans Techniques de Référencement
Posté
Réponse dans
Il faut modifier
header("Status: 301 Moved Permanently");
en
header("HTTP/1.1 301 Moved Permanently");
car le premier renvoie toujours une 302