マルウェア攻撃からDrupal 7サイトを回復した後、次のような(以前は)スパムコンテンツを指す多くのリンクができてしまいます。
_https://www.example.com/lshop/puma-rihanna-c-449/?zenid=id311p8tc67mbnbu8gb17d1uf1
https://www.example.com/eshop/nike-start-l-259/
https://www.example.com/eshop
https://www.example.com/fshop/adidas-maradona-k-149/
_
コンテンツは削除されましたが、バックリンクが残っています。悪意のあるバックリンクを_.htaccess
_ステータスページにリダイレクトする_410 Gone
_でこのルールを作成できました:
_<IfModule mod_rewrite.c>
redirect 410 /ashop/
redirect 410 /ashop
redirect 410 /bshop/
redirect 410 /bshop
redirect 410 /cshop/
redirect 410 /cshop
redirect 410 /eshop/
redirect 410 /eshop
redirect 410 /fshop/
redirect 410 /fshop
redirect 410 /ishop/
redirect 410 /ishop
redirect 410 /lshop/
redirect 410 /lshop
redirect 410 /oshop/
redirect 410 /oshop
redirect 410 /pshop/
redirect 410 /pshop
</IfModule>
_
リストは長くすることができます。キャッチする方法-正規表現を使用する-パターン「バックスラッシュの後ろにドメイン+ 1文字+ Word 'ショップ'オプションでバックスラッシュを続けて」、そのようなリンクを_410
_それがDrupalに触れる前にサーバーレベルで?
thesetwo の回答に基づいて次のパターンを試しましたが、成功しませんでした:
_redirect 410 /[a-z]shop/
redirect 410 /^([a-zA-Z])shop/
redirect 410 ^\/([a-z])(shop)\/(.*)$
redirect 410 ^[a-z]shop+$
_
redirect
はmod_aliasディレクティブ(mod_rewriteではない)であり、正規表現を受け入れません。 mod_rewrite RewriteRule
ディレクティブを使用するためにリンクする両方の回答。
.htaccess
では、RewriteRule
patternは、URLパスの先頭のスラッシュと一致しません(mod_alias Redirect
またはRedirectMatch
ディレクティブとは異なります)。
例えば:
RewriteRule ^[a-z]shop($|/) - [G]
上記は/xshop
または/xshop/<anything>
(x
は任意の小文字)のリクエストに一致し、410 Goneを提供します。
これは.htaccess
ファイルの先頭近くに配置する必要があり、<IfModule>
ラッパーは不要です。