我的.htaccess看起来像这样 -
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^auth\.php$ - [L]
RewriteRule ^static - [L]
RewriteRule (.*) router.php [L]
</IfModule>
它基本上确保所有请求都路由到router.php(auth.php和静态文件夹除外)
现在的问题是,每当我发布表单时,mod_rewrite都会强制将HTTP POSTS路由到router.php。
如何确保HTTP POST不会路由到router.php?
答案 0 :(得分:6)
您可以根据apache服务器提供的各种内容(如请求方法或主机)制定重写条件。该指令称为RewriteCond
。只有匹配一个或多个条件的请求才会被重写。
RewriteCond %{REQUEST_METHOD} !POST
RewriteRule .* router.php [L]
%{REQUEST_METHOD}
是包含请求方法的服务器变量。 List of methods
答案 1 :(得分:1)
使用RewriteCond
:
RewriteCond %{REQUEST_METHOD} !POST
RewriteRule (.*) router.php [L]
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritecond