PHP重写url并保留发布的数据

时间:2011-09-22 07:00:14

标签: php apache mod-rewrite

我有一个php服务器,我想重写传入的URL。由于传入的请求是发布请求,我还希望在新网址上传输发布的数据。

我已设法使用以下重写规则重定向网址:

RewriteRule ^test/(.*)$ http: //localhost/index.php?data=&1 [NC,L]

RewriteRule ^test/(.*)$ http: //localhost/index.php?data=&1 [NC,R=301]

我还设法使用以下重写规则来保留帖子数据:

RewriteRule ^test/(.*)$ http: //localhost/index.php?data=&1 [P]

问题是我不能同时兼顾他们两个。我究竟做错了什么?有没有办法重定向网址并保留发布数据?

1 个答案:

答案 0 :(得分:8)

您的问题可能是您重定向而不是重写。重定向更改人们在浏览器中看到的URL。重写仅更改PHP应用程序看到的URL。后者通常是你想要的。在后一种情况下,POST变量会自动保留。

要重写而不是重定向,请使用本地路径而不是URL:

RewriteRule ^test/(.)$ index.php?data=$1 [NC,L]