如何防止mod_rewrite处理HTTP Post请求?

use*_*208 1 php forms .htaccess mod-rewrite

我的.htaccess看起来像这样 -

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^auth\.php$ - [L]
RewriteRule ^static - [L]
RewriteRule (.*) router.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

它基本上确保所有请求都路由到router.php(auth.php和静态文件夹除外)

现在的问题是,每当我发布表单时,mod_rewrite都会强制将HTTP POSTS路由到router.php.

如何确保HTTP POST不会路由到router.php?

hak*_*kre 6

您可以根据apache服务器提供的各种内容(如请求方法或主机)来制定重写条件.该指令被调用RewriteCond.只有匹配一个或多个条件的请求才会被重写.

 RewriteCond %{REQUEST_METHOD} !POST
 RewriteRule .* router.php [L]
Run Code Online (Sandbox Code Playgroud)

%{REQUEST_METHOD}是包含请求方法的服务器变量.方法清单.