2012-09-26 88 views
2

我有一些電子郵件PHP腳本,我不希望用戶看看GET,但我使用它作爲電子郵件發送,使用wufoo的webHook如果有人知道它,所以它使用POST,所以我只是想要允許POST請求,否則,403或404我該怎麼做?只允許POST請求和拒絕所有其他REQUEST_METHOD使用.htaccess

我試着SO給出了一些答案和瀏覽Apache Web服務器的文檔,最好的答案,我發現是這樣的:

RewriteEngine On 
RewriteCond %{REQUEST_METHOD} !=GET 
RewriteRule ^.*$ /path/to 

不過,我想這應該在我的PHP腳本的目錄寫入,我只想在root中使用一個.htaccess。

文件夾結構:

 public_html (would want to use this folders .htaccess only) 
     -- email 
     -- mail.php (ONLY POST) 

我知道我們可以在mail.php使用REQUEST_METHOD直接,但我不想這樣做,這是一種這是不相關的腳本實際上事情。

任何人都可以提供一些幫助。

+1

如何在PHP中完成所有操作?如果有任何GET字符串存在,將頁面重定向到404?更容易執行,不太可能打破其他腳本.. –

+0

但假設有100頁,我不應該去100頁,並做正確的?我需要一個集中的文件,我可以管理所有這些,這就是問這個問題的原因。 –

+0

我已經通過拋出一個自定義異常來完成此操作,我在任何需要POST的頁面/腳本中調用PostMethodNotAllowed。這個異常被捕獲,並且可以在該異常處理程序中設置HTTP錯誤頭文件(比如403)以及用戶友好的消息。 –

回答

1

這是很類似的問題:
https://serverfault.com/questions/270950/only-allow-get-request-with-htaccess 只需創建適當的.htaccess文件,並把它裏面的「電子郵件」目錄。

您也可以直接在PHP中執行此操作。

+0

是的羅伯特正確但我不想要子目錄特定的htaccess文件,我也不想提供這種信息在我的代碼。多數民衆贊成的問題 –

+1

我想你沒有訪問服務器上的虛擬主機(可能共享主機?) – Robert

+0

是的,我不知道那麼多,是的,我在共享主機上使用控制面板,000webhost.com –

相關問題