Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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
Javascript RewriteCond和RewriteRule可以停止POST吗?_Javascript_Php_.htaccess_Post_Mod Rewrite - Fatal编程技术网

Javascript RewriteCond和RewriteRule可以停止POST吗?

Javascript RewriteCond和RewriteRule可以停止POST吗?,javascript,php,.htaccess,post,mod-rewrite,Javascript,Php,.htaccess,Post,Mod Rewrite,在我的.htaccess中,我有以下说明: RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] RewriteRule ^ %1 [R,L,NC] RewriteCond %{REQUEST_FILENAME}.php [NC] RewriteRule ^ %{REQUEST_URI}.php [L] 现在我面临着解雇任何$u帖子的问题。不可能,无论是php、html、ajax还是jquery。未传递任何POST值。它们只是不传递

在我的.htaccess中,我有以下说明:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

RewriteCond %{REQUEST_FILENAME}.php [NC]
RewriteRule ^ %{REQUEST_URI}.php [L]

现在我面临着解雇任何$u帖子的问题。不可能,无论是php、html、ajax还是jquery。未传递任何POST值。它们只是不传递到目标文件。上述规则和条件是否会导致问题?如果是,如何在不阻塞POST的情况下获得相同的结果?我需要从外部将/dir/foo.php重定向到/dir/foo,从内部将/dir/foo重定向到/dir/foo.php。

您的
.htaccess
应该是这样的

RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L]

它会起作用的 上面的代码只删除文件扩展名,但如果您想强制重定向 那么您的
.htaccess
应该是这样的

RewriteEngine on

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [L]


如果进行外部重定向,您通常会丢失POST数据,因为浏览器随后会对下一个新URL发出GET请求。但我看不到您从这里开始做任何外部重写-所以不清楚,问题到底应该在哪里。“我需要从外部重定向/dir/foo.php到/dir/foo”-您可以尝试使用状态代码
307
-然后浏览器应该在重定向后保留请求方法。但是它仍然需要再次发送所有数据——例如,如果你刚刚上传了一个50MB的视频,浏览器将不得不再次发送整个50MB。重定向POST请求通常不是一个好主意。实际上有多大的必要?有多少地方是你无法控制的,向你的网站发出发帖请求?在你控制的地方,你应该首先更改代码中的目标URL。相信我,花了好几个小时寻找帖子不通过的原因。使用php、js、ajax、jquery和html进行了所有尝试。否:所有的POST值都不能通过。所以我在看.htaccess,想知道上面的规则是否有罪。我需要这些规则是SEO和SEF url,隐藏扩展名,但遗憾的是,POST调用仍然没有传递任何值。我还需要隐藏.php扩展名,以防页面地址中指向.php文件的任何代码上面的代码是否正常工作?我的意思是它是否通过post值,因为我测试了它和它的工作,然后你有另一个问题,我检查了我的测试环境和它的工作dodiyavijay.com/stackOh是的,我忘记了一行代码,但现在它工作了。传递后值。但是,由于您的代码只将foo寻址到foo.php,但在url foo.php中没有显示为foo,现在的问题是:如何隐藏任何.php扩展而不丢失POST功能?