4

是否可以在某些 url 上阻止 POST 方法,例如

www.mydomain.com/dontposthere
www.mydomain.com/something/againdontposthere

在 htaccess 中?

4

2 回答 2

8

如果您有权访问 mod_rewrite,则可以检查REQUEST_METHOD环境变量并将 url 重写到另一个页面,该页面显示一条消息,例如“您不允许发布”

创建一个包含消息的页面:/var/www/noPost.php

You are not allowed to post to this page

然后使用这样的 .htaccess 规则:

RewriteEngine On

RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^/dontposthere [OR]
RewriteCond %{REQUEST_URI} ^/something/againdontposthere
RewriteRule .* /noPost.php [L,QSA]

您可以创建文件/文件夹列表作为匹配条件,甚至可以创建正则表达式模式来匹配多个文件/文件夹。你只需要放[OR]最后一个。

于 2013-06-14T17:56:44.297 回答
2

替代编写“noPost”页面,只需使用F|forbidden 标志直接返回 403 响应:

RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^/dontposthere
RewriteRule .* - [F,L]
于 2018-02-06T07:00:40.687 回答