2014-02-16 39 views
0

我有一個網站,用於有一個搜索引擎腳本,它已被刪除,並用新內容取代。過濾頁面重定向到404在.htaccess

/index.php?page=search/web/appdojo.com 

/index.php?page=search/web/2tu.us 

/index.php?page=search/emailafriend&url=http%253A%252F%252F 

/index.php?page=user/viewcomments/images/82e10127b84ee2750c 

這就造成了巨大的過程量啓動,然後我們與託管服務提供商的問題:

幾乎每隔一段時間,在將網站與像請求淹沒。

我想我應該能夠index.php調用之前在.htaccess停止這些,但還沒有想出一個regex表達要做到這一點,但讓index.php的URL通過確定的其餘部分。

任何人都可以幫忙嗎? - 謝謝

回答

0

由於您在標籤中包含PHP,因此只需在index.php中顯示404錯誤並使其看起來是錯誤就會容易得多。所以,你可以在index.php頁面之前一切把這個:

if (isset($_GET['page'])) { 
    header('HTTP/1.0 404 Not Found'); 
    include('404.php'); //Whatever your 404 error page is 
    exit(); 
} 
+0

我已經嘗試過,但index.php文件啓動一個進程,我需要從運行index.php文件停止它。我認爲我必須在.htaccess中執行此操作? – Peter

+0

'exit();'應該殺死其他所有東西。 – Anonymous

0

如果你的索引頁沒有使用page變量的一切,你可以嘗試阻斷在頁面PARAM url中的所有網址

RewriteRule ^index.php?page= /Your_404_page.php 
0

是的,最好是阻止他們在.htaccess階段,以防止加載PHP。這裏是會爲你在DOCUMENT_ROOT/.htaccess文件的工作規則:

RewriteEngine On 

RewriteCond %{THE_REQUEST} /index\.php\?page= [NC] 
RewriteRule^- [R=304,L]