是否可以在某些网址上阻止POST方法,例如
www.mydomain.com/dontposthere
www.mydomain.com/something/againdontposthere
在htaccess中?
答案 0 :(得分:8)
如果您有权访问mod_rewrite,则可以检查REQUEST_METHOD
环境变量并将该网址重写到另一个页面,该页面会显示一条消息,上面写着“您不允许发布”
创建一个包含以下消息的页面:/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]
。
答案 1 :(得分:1)
编写“noPost”页面的替代方法,只需直接使用F|forbidden flag返回403响应:
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^/dontposthere
RewriteRule .* - [F,L]