2011-03-21 19 views
0

嘿, 我需要在HTACCESS中篩選出具有某個PHP值的請求,我無法找到如何做到這一點。HTACCESS與PHP值

問題是有人發垃圾我的網站與特殊的PHP值,它使我的服務器過載。

URL是www.site.com/?q=XXXXX。我需要過濾掉所有這樣的請求(使用?q = XXXX)並將它們重定向到主頁。

我試過這個,但它不能正常工作(有一個循環)。

RewriteCond %{QUERY_STRING} q=(.*) 
RewriteRule ^(.*) http://www.site.com 

感謝

回答

1

爲什麼不ü清理出任何被放進_GET價值? (使用PHP)

在PHP文件的頂部放像:

if(isset($_GET['q'])){ 
    header('Location: homepage.php'); 
} 
+0

因爲我需要這個值。這是一個搜索值,我有另一個從site.com/search/XXXX改寫爲index.php?q =。有人可能在一些遠程搜索中包含了該查詢,我只是不想直接訪問它。 – Tom 2011-03-21 22:27:05

+0

即時通訊仍然不知道你想做什麼,我引用'該網址是www.site.com/?q=XXXXX。我需要過濾掉所有這樣的請求(使用?q = XXXX),並將它們重定向到主頁。這意味着您不希望得到q =的值。... – Neal 2011-03-21 22:28:28

+0

我想過濾掉所有對www的直接請求。 site.com/?q=XXXX,但同時我需要www.site.com/search/XXXX的這個值。我不想在PHP中做,但直接在HTACCESS中,所以我不必打PHP,因爲我有靜態緩存在那裏運行。 – Tom 2011-03-21 22:32:15

0

如果有人濫發你足夠的超載您的服務器,你應該看看阻止他們的IP地址/地址或東西沿着硬如果可能的話,那些行

此外,我會建議讓這些請求死(),而不是讓他們發送給您另一個請求時,他們加載您的主頁。或者,也可以通過重定向到一個不存在的域名,但可能影響或不影響他們的域名來讓他們忙碌。

+0

由於某些原因,請求來自不同的IP,因此無法阻止它們。它不像DDOS或其他東西... – Tom 2011-03-22 01:47:51

+0

來自不同IP的請求超載服務器正是DDOS的含義。 – 2011-03-22 03:01:30

+0

但這不是DDOS它只是一些不同的網站,它遠程訪問我的服務器,並使用我的數據庫進行搜索 – Tom 2011-03-22 03:43:37

0

您是否想過計算「X」? 如果?q = X == true,繼續, 否則如果q> 9,那麼你知道有人正在搞砸它,並限制他們