繁体   English   中英

RewriteCond 和 RewriteRule 可以停止 POST 吗?

[英]RewriteCond and RewriteRule can stop 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]

现在我面临着解雇任何 $_POST 的问题。 没办法,既没有 php 也没有 html 也没有 ajax 也没有 ZD223E1439188E468349D52422。 没有传递 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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM