J'ai ce problème avec mon fichier .htaccess
.
Google a indexé quelques URL que je ne veux pas (Erreur 404) dans les Outils pour webmasters.
J'ai besoin de réécrire des URL qui incluent --
, /-
ou se terminant par -
comme ceci :
- remplacer
--
par-
- supprimer le
-
après le/
- supprimer le
-
final
... mais seulement si l'URL ne contient pas product_info.php
.
J'ai essayé avec ceci mais ça ne fonctionne pas...
RewriteCond %{REQUEST_URI} !^/product_info\.php(.*)$
RewriteRule ^(.*)--(.*)$ /$1-$2 [L,R=301]
RewriteRule ^(.*)/-(.*)$ /$1/$2 [L,R=301]
RewriteRule ^(.*)-$ /$1$2 [L,R=301]
C'est sur une boutique Ecommerce Magento avec le cache Varnish activé.
Édition #1 :
Oui, elles apparaissent dans le rapport d'erreur 404 !
Quand je dis que ça ne fonctionne pas : Magento dit "Ce document a été déplacé ici". Si je clique là, il y a une erreur de "Bloc ESI".
Il peut y avoir du contenu après le product_info.php?product=TestProduct--Green--XXL
Dans ce cas, je ne veux pas remplacer le --
par -
=> c'est le problème je pense.
Édition #2 :
Voici le .htaccess
complet. J'ai supprimé les commentaires sauf les redirections que j'essaie de faire fonctionner en raison de l'espace.
DirectoryIndex index.php
php_value memory_limit 6144M
php_value max_execution_time 18000
php_flag magic_quotes_gpc off
php_flag session.auto_start off
php_flag suhosin.session.cryptua off
php_flag zend.ze1_compatibility_mode Off
SecFilterEngine Off
SecFilterScanPOST Off
SSLOptions StdEnvVars
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/rma/
RewriteRule ^ - [L]
#RewriteCond %{REQUEST_URI} !^/product_info(.*)
#RewriteRule ^(.*)--(.*)$ /$1-$2 [L,R=301]
#RewriteCond %{REQUEST_URI} !^/product_info(.*)
#RewriteRule ^(.*)/-(.*)$ /$1/$2 [L,R=301]
#RewriteCond %{REQUEST_URI} !^/product_info(.*)
#RewriteRule ^(.*)-$ /$1$2 [L,R=301]
RewriteRule ^api/rest api.php?type=rest [QSA,L]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
RewriteRule .* - [L,R=405]
RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]
AddDefaultCharset Off
ExpiresDefault "access plus 1 year"
Order allow,deny
Allow from all
order allow,deny
deny from all
Order allow,deny
Deny from all