我有一个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]
问题是我不能同时兼顾他们两个。我究竟做错了什么?有没有办法重定向网址并保留发布数据?
答案 0 :(得分:8)
您的问题可能是您重定向而不是重写。重定向更改人们在浏览器中看到的URL。重写仅更改PHP应用程序看到的URL。后者通常是你想要的。在后一种情况下,POST变量会自动保留。
要重写而不是重定向,请使用本地路径而不是URL:
RewriteRule ^test/(.)$ index.php?data=$1 [NC,L]