2012-09-26 180 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 –

相关问题