web-dev-qa-db-fra.com

Rediriger 301 pour le sous-répertoire Apache et la combinaison de chaînes de requête

Je reçois 404 erreurs dans la console de recherche Google pour des URL telles que celles-ci:

http://www.example.com/newsite12121212121212/eg/st_tour/perma/
http://www.example.com/newsite12121212121212/eg/st_activity/extreme-biking/
http://www.example.com/newsite12121212121212/eg/st_activity/extreme-biking/?currency=EUR
http://www.example.com/newsite12121212121212/eg/st_rental/new/?currency=EUR
http://www.example.com/eg-login/?location_id=1680&s=France&currency=ALL&orderby=price_desc

Je souhaite rediriger tous ces éléments vers la page d'accueil de mon site, car ces pages n'existent pas.

Problème n ° 1: Je veux rediriger toute page se trouvant sous /newsite12121212121212/ (y compris tout sous-répertoire) vers la page d'accueil.

Problème n ° 2:?currency= quelque chose, ramenez-le à la page d'accueil. j'ai essayé

RewriteEngine On
RewriteCond %{QUERY_STRING} ^currency=$
RewriteRule ^$ https://www.example.com/? [R=301,L]

Cela fonctionne pour l'URL http://www.example.com?currency=EUR mais échoue sur http://www.example.com/eg-login/?currency=EUR.

3
Blender For You

Si vous souhaitez rediriger une page vers la page d'accueil comportant un paramètre monétaire, vous devez modifier votre expression régulière correspondant à la partie du chemin d'accès. Actuellement, vous essayez d'utiliser ^$ qui correspond à un chemin vide. .* correspondrait à "n'importe quel chemin":

RewriteEngine On
RewriteCond %{QUERY_STRING} currency=
RewriteRule .* https://www.example.com/ [R=301,L,QSD]

Vous pourriez avoir une autre règle de réécriture que pour le répertoire:

RewriteRule \/?newsite12121212121212.* https://www.example.com/ [R=301,L]

Comme nous l'avons dit dans les commentaires, il n'est pas bon que le référencement redirige vers la page d'accueil. Google considère la redirection de la page d'accueil comme une erreur "soft 404". Cela les traitera comme si vous retourniez le statut "404 Page non trouvée". La redirection vers la page d'accueil ne supprimera pas les erreurs de la console de recherche Google.

Si vous avez réellement une page pour st_tour/perma, vous devez la rediriger vers la place de la page d’accueil. Cela pourrait nécessiter davantage de règles de redirection, mais les utilisateurs et les moteurs de recherche seront plus heureux.

Si vous n'avez jamais eu une telle page, n'essayez pas de revendiquer l'URL. Cela peut être dû à un spam, à un programme malveillant ou à un site antispam précédent s'exécutant sur votre nom de domaine. Si vous revendiquez ces URL, vous pourriez inviter des pénalités aux moteurs de recherche. Avoir 404 erreurs dans votre rapport d'analyse sur la console de recherche Google pour les pages qui ne devraient pas exister ne nuira pas à votre site. John Mueller de Google le dit ici: https://plus.google.com/+JohnMueller/posts/RMjFPCSs5fm

1