htaccess重定向松散发布数据!!如何在使用htaccess重定向时保留post数据


htaccess redirection loose post data!! how to keep post data while redirect using htaccess?

我有一个.htaccess文件,它将.php重写为.htm:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]+'s([^'s]+)'.php's
RewriteRule .* %1.htm [L,R=301]
RewriteRule ^(.*)'.htm$ $1.php

重定向工作正常,但重定向会丢失$_POST数据。重定向时如何保留$_POST数据?

浏览器在重定向时将POST请求转换为GET请求。RFC指出,如果方法需要更改,他们应该提示用户,但没有一个遵循这一点,而是无条件地强制更改方法。

如果你想简单地将URL从.php文件重写为.htm文件,你只需要做这样的事情-

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]+'s([^'s]+)'.php's
RewriteRule ^(.*)'.php$ $1.htm

.htaccess的3行详细描述了流动行为-

  1. 打开重写引擎
  2. 该请求与给定的正则表达式匹配
  3. 重写整个URL以使用.htm文件