RewriteCond和RewriteRule可以停止POST吗?

问题描述 投票:-1回答:1

在我的.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]

现在,我面临着解雇任何$ _POST的问题。没办法,既不使用php也不使用html也不使用ajax或jquery。没有传递POST值。它们根本不会传递到目标文件。可能是上述规则和条件引起的问题吗?如果是,如何在不阻止POST的情况下获得相同的结果?我需要从外部将/dir/foo.php重定向到/ dir / foo并从内部将/ dir / foo重定向到/dir/foo.php。

javascript php .htaccess post mod-rewrite
1个回答
0
投票

您的.htaccess应该是这样的

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

它将起作用

另一种选择是在下面尝试这种方式,以将重定向URL强制为无文件扩展名

RewriteEngine on
RewriteBase /


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

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

© www.soinside.com 2019 - 2024. All rights reserved.