2011-11-14 8 views
0

私はhtaccessに問題があります。ウェブサイトを移動しました。古いウェブサイトには、?cat_id=88などの重複したページがたくさんありました。ページをリダイレクトしようとしていますがそれは私が/Mantraからmantra.htmlをリダイレクトすでに、私はリダイレクトコード下の置かれている、よ働いていないが、?cat_id=79とバージョンがリダイレクトされていない、それだけで無視しているすべて?htaccessは '?'のためにリダイレクトされません。

Redirect 301 /mantra.html?cat_id=79 http://www.website.co.uk/Mantra 

答えて

1

リダイレクト後にのみクエリーストリングを持つパスではなく、パスを受け入れます。あなたが働いて、それを得れば301にmod_rewriteの

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^cat_id=79$ 
RewriteRule ^mantra\.html$ /Mantra? [R=302,L] 

変更302使用(301が積極的にブラウザによってキャッシュされ、悪夢をデバッグ作る)ことができます。

EDIT最後に?を追加してクエリーストリングを除去した。クエリー・ストリングに他のデータがない場合、Apacheは?を除去します。したがって、エンド・ユーザーはそれを見ません。

+1

既存のクエリ文字列を削除する場合は、ターゲットの最後に '?'を忘れないようにしてください。 –

+0

良い提案Ignacio。それを投稿に追加しました。 – Gerben

関連する問題