CMSからフォーラムシステムを削除し、検索エンジンが以前の投稿にアクセスするたびに410ステータスコードを返すようになりました。仕事をするためにいくつかの書き換えルールを使用する必要があることは知っていますが、それらを機能させることはできません。
削除したフォーラムのベースURLは次のとおりです。
投稿-> mywebsite.com/forum-viewtopic-p-xxx.html
トピック-> mywebsite.com/forum-viewtopic-t-xxx.html
サブフォーラム-> mywebsite.com/forum-viewforum-f-xxx.html
それを考慮して、これらは.htaccessに追加したコードのいくつかの例です:
RewriteCond %{QUERY_STRING} forum-viewtopic
RewriteRule .* - [G]
RewriteCond %{QUERY_STRING} forum-viewforum
RewriteRule .* - [G]
間違っていることはわかりませんが、これらのフォーラム投稿のHTTPヘッダーには、410エラーではなく「404 Not Foundメッセージ」が表示されます。
提供したサンプルURLに基づいて、ドキュメントルートフォルダ(通常はindex.htmlが配置されている)の.htaccessファイルの先頭にある次の行を使用すると便利です。
RewriteEngine On
RewriteRule ^forum-view(.*)$ - [NC,R=410,L]
これにより、Wordが大文字か小文字か、大文字と小文字が混在しているかに関係なく、フォーラムビューで始まるすべてのリンクが削除済みステータスにリダイレクトされます(これがR = 410の意味です)。また、後でルールが混乱しないようにするための一致がある場合、ルール処理がそこで終了することを示すためにLが含まれています。 。*は任意の文字または複数の文字を意味し、簡単にするためにそれを括弧で囲みました。
%{QUERY_STRING}
は、URLの?
の後のすべてを参照します。 URLに疑問符が付いていないため、一致していません。
URLにforum-viewtopic
またはforum-viewforum
が含まれていることを確認して、410のステータスを返します。この単一のルールはそれを行う必要があります:
RewriteRule forum-viewtopic|forum-viewforum - [G]
さらに簡単な別のオプション:
RewriteRule forum-view - [G]
または、「「フォーラム」で始まるものすべて」と言ってほしいかもしれません。
RewriteRule ^forum - [G]
Mod_rewriteを使用する代わりに、mod_aliasのRedirectMatchディレクティブを使用することもできます。
RedirectMatch gone /forum.*