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