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

标签 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>

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

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

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

最佳答案

您可以根据 apache 服务器提供的不同内容(例如请求方法或主机)制定重写条件。该指令称为 RewriteCond .只有满足一个或多个条件的请求才会被重写。

 RewriteCond %{REQUEST_METHOD} !POST
 RewriteRule .* router.php [L]

%{REQUEST_METHOD} 是包含请求方法的服务器变量。 List of methods .

关于php - 如何防止 mod_rewrite 处理 HTTP Post 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8541932/

相关文章:

php - 将数组中键的数据类型从数字更改为字符串

django - 无法从 Django 小部件的模板获取 MEDIA_URL

mysql - 有问题的归一化

.htaccess - htaccess 文件中的多个重写规则和条件

HTML5 Boilerplate .htaccess 重写为 index.php

php - .htaccess modrewrite 破坏了我的表格

php - $_GET Updated_value(?) - 另一个就地编辑器(Jquery 插件)问题

php - 如何将 md5 字符串转换为普通文本?

Php将多个字符串分配给一个变量

php - Symfony\组件\表单\异常\InvalidArgumentException : Could not load type "..."