在.htaccess.apache rewrite之后删除了POST方法
我在添加.htaccess后发布帖子数据时遇到问题,这是我的.htaccess在.htaccess.apache rewrite之后删除了POST方法,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我在添加.htaccess后发布帖子数据时遇到问题,这是我的.htaccess RewriteEngine on RewriteCond %{REQUEST_METHOD} !=POST RewriteRule ^index\.php(.*)$ index.php$1 [NC] RewriteRule ^([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1 [L] RewriteRule ^([-a-zA-Z0-9_]+)[\/]([-a-zA-Z0-9_]+
RewriteEngine on
RewriteCond %{REQUEST_METHOD} !=POST
RewriteRule ^index\.php(.*)$ index.php$1 [NC]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1 [L]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1&args[1]=$2 [L]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]([-a-zA-Z0-9_\@\.]+)[\/]([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1&args[1]=$2&args[2]=$3 [L]
请帮帮我,我哪里做错了?在htaccess规则之后,POST方法不起作用
谢谢。
RewriteCond
仅适用于下一个RewriteRule
你的规则是这样的:
RewriteEngine on
RewriteCond %{REQUEST_METHOD} =POST
## don't do anything for POST
RewriteRule ^ - [L]
RewriteRule ^index\.php(.*)$ index.php$1 [NC,L]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1 [L]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1&args[1]=$2 [L]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]([-a-zA-Z0-9_\@\.]+)[\/]([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1&args[1]=$2&args[2]=$3 [L]
RewriteCond
仅适用于下一个RewriteRule
你的规则是这样的:
RewriteEngine on
RewriteCond %{REQUEST_METHOD} =POST
## don't do anything for POST
RewriteRule ^ - [L]
RewriteRule ^index\.php(.*)$ index.php$1 [NC,L]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1 [L]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1&args[1]=$2 [L]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]([-a-zA-Z0-9_\@\.]+)[\/]([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1&args[1]=$2&args[2]=$3 [L]
我刚刚结束了我的测试,这里是我的解释,规则如下:
RewriteEngine on
#RewriteCond %{REQUEST_METHOD} !=POST
#RewriteRule ^index\.php$ index.php [QSA,L,NC]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1 [L]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1&args[1]=$2 [L]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]([-a-zA-Z0-9_\@\.]+)[\/]([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1&args[1]=$2&args[2]=$3 [L]
由于您既没有重定向,也没有[R]标志,发布的数据不会丢失,只重定向所有发布的数据
作为POST操作的php脚本可以同时接受$\u POST和$\u GET,这里您的$args仍保留在php中的$\u GET数组中。其他已发布的数据在$u POST中
因此,请在index.php中进行测试:
<?php
echo "<pre>
\$_GET
";
var_dump($_GET);
echo "</pre>";
echo "<pre>
\$_POST
";
var_dump($_POST);
echo "</pre>";
?>
<form action="souper/ppan/ppm/" method="POST">
<input type="text" name="super" value="man" />
<input type="submit" name="submit" />
</form>
我刚刚结束了我的测试,这里是我的解释,规则如下:
RewriteEngine on
#RewriteCond %{REQUEST_METHOD} !=POST
#RewriteRule ^index\.php$ index.php [QSA,L,NC]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1 [L]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1&args[1]=$2 [L]
RewriteRule ^([-a-zA-Z0-9_]+)[\/]([-a-zA-Z0-9_\@\.]+)[\/]([-a-zA-Z0-9_]+)[\/]$ index.php?args[0]=$1&args[1]=$2&args[2]=$3 [L]
由于您既没有重定向,也没有[R]标志,发布的数据不会丢失,只重定向所有发布的数据
作为POST操作的php脚本可以同时接受$\u POST和$\u GET,这里您的$args仍保留在php中的$\u GET数组中。其他已发布的数据在$u POST中
因此,请在index.php中进行测试:
<?php
echo "<pre>
\$_GET
";
var_dump($_GET);
echo "</pre>";
echo "<pre>
\$_POST
";
var_dump($_POST);
echo "</pre>";
?>
<form action="souper/ppan/ppm/" method="POST">
<input type="text" name="super" value="man" />
<input type="submit" name="submit" />
</form>
大家好,它正在根文件夹上工作,但它不在子文件夹上工作,根文件夹有不同的htaccess,我看不到它,我正在大学服务器上测试网站,所以,我没有根文件夹htaccess。我在子目录/stack/.htaccess中测试了它,它可以工作。您的root/.htaccess可能会对重写产生一些影响。您可以尝试隔离,仅使用/subdir/.htaccess测试它是否有效。方法是添加[QSA,L,NC]并删除RewriteCond%{REQUEST_METHOD}=帖子帮了忙,它现在正在工作,我不知道但它正在工作,谢谢你的提示!我如何隔离它?我需要它来解决功能问题?我离开大学20多年了。。。你好吗?隔离:将/.htaccess重命名为/old.haccess,或注释其中的所有行,仅用于测试。您好,它正在根文件夹上工作,但不在子文件夹上工作,根文件夹具有不同的htaccess,我无法看到它,我正在大学服务器上测试网站,因此,我没有根文件夹htaccess。我在子目录/stack/.htaccess中测试了它,它可以工作。您的root/.htaccess可能会对重写产生一些影响。您可以尝试隔离,仅使用/subdir/.htaccess测试它是否有效。方法是添加[QSA,L,NC]并删除RewriteCond%{REQUEST_METHOD}=帖子帮了忙,它现在正在工作,我不知道但它正在工作,谢谢你的提示!我如何隔离它?我需要它来解决功能问题?我离开大学20多年了。。。你好吗?隔离:将/.htaccess重命名为/old.haccess,或注释其中的所有行,仅用于测试。