我有一个.htaccess
文件,它将.php
重写为.htm
:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]+s([^s]+).phps
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]+).phps
RewriteRule ^(.*).php$ $1.htm
.htaccess
的3行详细描述了流动行为-
- 打开重写引擎
- 该请求与给定的正则表达式匹配
- 重写整个URL以使用
.htm
文件