web-dev-qa-db-ja.com

特定のURLに対して410 Goneを与えるようにルールを書き換えると機能しません

私はフランス人です。 1週間前、私のウェブサイトは古いバージョン(http)でハッキングされました。このハッキングにより404のスパムが作成されましたが、それらのスパムが「410 Gone」ステータスになっていることを確認したいと思います。サイト上の私の問題は:https://www.example.com/aasption

私は試した:

RewriteRule ^aasption - [G] 

htaccess。動作しません。何が問題になっていますか?

更新:

問題は、私がまだ404を取得していることです。

スパムされたURLの例:

  • www.example.com/aasption.asp?id=puma/puma-ambition-collant/prd/9723115?...
  • wwww.example.com/aasption.asp?search=puma&page=5

俺の .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^aasption - [G]
</IfModule>
1
david

ディレクティブを間違った場所に配置しました。末尾ではなく、.htaccessファイルの先頭、つまりfront-controllerの前に配置する必要があります。このコードを最後に配置すると、物理的なファイルにマップされていない要求のURLが前述のディレクティブによって既に書き換えられているため、コードは何もしません。

これらのディレクティブの順序は重要です。

例えば:

# Send 410 Gone for any URL that starts "/aasption"
RewriteRule ^aasption - [G]

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

RewriteEngine Onディレクティブを繰り返す必要はありません。

1
MrWhite