2016-05-25 72 views
1

我已經嘗試了很多代碼,現在我在這裏。有沒有一種方法可以將垃圾郵件鏈接重定向回404錯誤或410錯誤消失頁面,通過我的.htaccess文件(這是一個WordPress的網站)鏈接都以一個開始?標記 - 例如他們是:www.mydomain.com/?spam-link-這裏的鏈接,現在他們都會進入主頁,我希望他們去404或410錯誤頁面。所以它需要是一個以一個以?開頭的查詢字符串爲目標的東西。標記目標代碼。使.htaccess重定向垃圾鏈接開始?到錯誤頁面

**僅供參考我使我的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] 

而在可溼性粉劑管理員,我把:

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 

還必須警惕無限循環在你的規則的頂部

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

那麼你的「水漲船高」的規則可以被簡化爲

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

我的地方一些其他額外的幫助,這是最終似乎正在工作,返回404任何網址,包括一個查詢字符串與no =符號的迴應。

###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 

似乎至少將垃圾郵件鏈接重定向到錯誤頁面!