Htaccess阻止除GET之外的所有传入方法除了一个以外的所有网址?

时间:2016-04-04 12:30:05

标签: php .htaccess mod-rewrite

我希望使用POST,DELETE,...方法阻止所有请求但GET以及除一两个以外的所有网址。这是我的代码,我需要http://.../api/failure/report免费,其他所有人都需要重定向。

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_METHOD} !=GET
    RewriteCond %{REQUEST_URI} !^/api/failure/report [NC]
    RewriteRule ^.*$ / [R=301,L]
</IfModule>

当我使用此代码时,它运行良好,但我反之亦然。

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_METHOD} !=GET
    RewriteCond %{REQUEST_URI} ^/api/failure/report [NC]
    RewriteRule ^.*$ / [R=301,L]
</IfModule>

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

<IfModule mod_rewrite.c>
RewriteRule ^api/failure/report/?$ - [L] 
    RewriteCond %{REQUEST_METHOD} !GET [NC]
    RewriteRule ^.*$ / [R=301,L]
</IfModule>