2016-05-25 11 views
1

私はたくさんのコードを試して、今ここにいます。私の.htaccessファイル(それはWordPressのサイトです)を介してリンクがすべてで始まる404エラーまたは410のエラーページに戻ってspamyリンクをリダイレクトする方法はありますか?マークは - 例えばwww.mydomain.com/?spam-link-hereリンクですが、今はすべてホームページに行き、404または410のいずれかのエラーページに行きます。だから、それは何かで始まるクエリ文字列をターゲットにする必要がありますか?ターゲットコードをマークします。.htaccessがspamyリンクをリダイレクトするようにしますか?エラーページ

** FYI私は私のhtaccessファイルを硬化させている、ちょうど私が入れたルートディレクトリの.htaccessでのおかげで

、この部分を支援する必要があります。

RewriteEngine On 
RewriteBase/

# Get the strings but no empty strings because of home failure 
RewriteCond %{QUERY_STRING} . 

# AND try to exclude normal searches, CSS and Javascript: 
RewriteCond %{QUERY_STRING} !^s=(.*)$ 
RewriteCond %{QUERY_STRING} !^c=(.*)$ 
RewriteCond %{QUERY_STRING} !^ver=(.*)$ 
RewriteCond %{REQUEST_URI} !^/wp-login\.php 

# AND try not to rewrite specific directories: 
RewriteCond %{REQUEST_URI} !^wp-admin/ 
RewriteCond %{REQUEST_URI} !^wp-content/ 

# Do it 
RewriteRule ^(.*)$ http://www.yoursite.com.au/$1? [G,NC] 

そして私は置くのwp-adminの中:

RewriteEngine On 
RewriteBase/

RewriteCond $1 !^(edit\.php|edit-tags\.php|upload\.php|link-manager\.php|post-new\.php|post\.php|admin\.php|themes\.php|widgets\.php|theme-editor\.php|plugin-install\.php|plugin-editor\.php|profile\.php|tools\.php|customize\.php|nav-menus\.php|users\.php|options-general\.php|options-writing\.php|options-media\.php|options-reading\.php|options-discussion\.php|options-media\php|options-permalink\.php|) 
RewriteRule ^(.*)$ http://www.yoursite.com.au/$1? [G,NC] 

ダッシュボードを壊しました。それはスパムリンクをエラーページにリダイレクトさせた場合でも気にしません。私はそこに他にたくさんのコードを試しました。このコードは別の男のために働いたが、それは私のために働いていない...確信していない理由。

ここに他のスレッドからのリンクがあります、私はそれが最終的にここでstackoverflowで解決されることを望んでいた。 thread where I got the latest set of code

答えて

0

Gフラグはすでにステータスコード410を返しているため、ホームページにリダイレクトしないでください。

おそらく、ErrorDocumentのどこかに、またはエラーステータスコードをホームページにリダイレクトするルールがあります。このような場合は、この指示文を実際のエラーページと置き換える必要があります。

ErrorDocument 410 /error-410.html 

あなたはまた、どこか次に、あなたの「ゴーン」ルールは私が得ただけ

RewriteCond %{QUERY_STRING} . 
RewriteCond %{QUERY_STRING} !^s=(.*)$ 
... 
RewriteRule^- [G] 
1

に簡略化することができ

RewriteRule ^error-410\.html$ - [L] 

を使用して、ルールの先頭に無限ループを防ぐ必要があります何か別の助けとこれは最終的に動作しているようだが、=記号のないクエリ文字列を含む任意のURLで404の応答を返します。

###BAD QUERY STRING BLOCKER, ADDED 5/26/2016 
<IfModule mod_rewrite.c> 
RewriteCond %{QUERY_STRING} ^[\-/A-Z0-9]+$ [NC] 
RewriteRule (.*) - [R=404] 
</IfModule> 
###END CODE 

少なくともスパムのリンクをエラーページにリダイレクトしているようです!

関連する問題