Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.htaccess.apache rewrite之后删除了POST方法_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

在.htaccess.apache rewrite之后删除了POST方法

在.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_]+

我在添加.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_]+)[\/]$ 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,或注释其中的所有行,仅用于测试。