1

クエリ文字列を削除するために見つけた例を適用するのに問題があるようです。

www.example.com/blog/にWordPressがインストールされています。何らかの理由で、カテゴリがかなりスラッグに設定されていても(IE www.example.com/categories/cat-name/)、できますが報告されたリファラーページでリンクが見つからない場合、Googleウェブマスターツールはwww.example.com/blog/?cat=3、?cat=25、?cat=37などのインデックスを作成しようとして失敗し続けます。現在、カテゴリ#81までの50を少し超えるそのようなURLが表示されていますが、カテゴリは11しかありません。

正しいカテゴリURLにインデックスが付けられており、これらのクエリ文字列をすべて削除してwww.example.com/blog/にリダイレクトしたいのですが、どの例も機能していないようです...これが私の最新の試みです(ウェブスペースのルート.../blog / .htaccessでの試みも無益でした):

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com [OR]
RewriteCond %{REQUEST_URI} /index\.html$
RewriteRule (.*?)(index\.html)?$ http://www.example.com/$1 [NE,R=301,L]

RewriteCond %{REQUEST_URI} \.jpg.+$
RewriteRule ^(.*\.jpg).*$ http://www.example.com/$1 [NE,R=301,L]

RewriteCond %{QUERY_STRING} ^cat=([0-9]*)$
RewriteRule ^(.*)$ http://www.example.com/blog/ [R=301,L]

前もって感謝します。ルールの最初のグループは「www。」を強制し、「index.html」は適用しないことに注意してください。2番目のグループは「.jpg」の後にすべてを削除します。 「.jpg%20>」のように、アンカーのソースの終了引用符を何らかの形で見逃したかのようですが、サイトでそのようなエラーを見つけることはできませんでした...リファラーは常に300エラーページでした。

4

1 に答える 1

1

クエリ文字列を完全に取り除きたい場合は、置換文字列を?.

Apache Rewrite docsから:

デフォルトでは、クエリ文字列は変更されずに渡されます。ただし、クエリ文字列部分を含む置換文字列で URL を作成することはできます。置換文字列内で疑問符を使用するだけで、次のテキストをクエリ文字列に再挿入する必要があることを示します。既存のクエリ文字列を消去する場合は、置換文字列を疑問符だけで終了します。新しいクエリ文字列と古いクエリ文字列を組み合わせるには、[QSA] フラグを使用します。

于 2013-01-22T17:32:11.673 に答える