web-dev-qa-db-ja.com

Apache Subディレクトリとクエリ文字列の組み合わせに対するリダイレクト301

次のようなURLについて、Google Search Consoleで404エラーが表示されます。

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

ページが存在しないため、これらすべてをサイトのホームページにリダイレクトしたいと思います。

問題#1:/newsite12121212121212/(サブディレクトリを含む)の下にあるページをホームページにリダイレクトしたい。

問題#2:?currency=何か、ホームページに戻してください。私は試した

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

http://www.example.com?currency=EUR URLで機能していますが、http://www.example.com/eg-login/?currency=EURで失敗します。

3
Blender For You

通貨パラメーターがあるときにページをホームページにリダイレクトする場合は、パス部分に一致する正規表現を変更する必要があります。現在、空のパスに一致する^$を使用しようとしています。 .*は「任意のパス」に一致します。

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

ディレクトリ用の別の書き換えルールを作成できます。

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

コメントで述べたように、SEOがホームページにリダイレクトするのは良くありません。 Googleは、ホームページのリダイレクトを「ソフト404」エラーと見なします。 「404ページが見つかりません」ステータスを返すかのようにそれらを扱います。 ホームページにリダイレクトしても、Google Search Consoleのエラーは消えません。

st_tour/permaのページが実際にある場合は、ホームページではなくそのページにリダイレクトする必要があります。より多くのリダイレクトルールが必要になる場合がありますが、ユーザーと検索エンジンの両方がより快適になります。

そのようなページを持ったことがない場合は、URLを要求しないでください。スパム、マルウェア、またはドメイン名で実行されている以前のスパムサイトが原因である可能性があります。これらのURLを要求すると、検索エンジンから罰則を科せられる可能性があります。 Google Search Consoleのクロールレポートに存在してはならないページの404エラーが発生しても、サイトが損なわれることはありません。 Googleのジョンミューラーは次のように述べています: https://plus.google.com/+JohnMueller/posts/RMjFPCSs5fm

1