我的网站用于生成以下网址:
/data.php?s=1432862823&type=basic
我修改了程序,因此生成的新网址为:
/d.php?s=1432862823&t=basic
由于有些人已将旧网址加入书签,我想编写一个重写规则,将其转到新网址。
到目前为止我还没有这个:
RewriteEngine on
RewriteRule "^/data\.php$" "/d.php"
但我无法弄清楚如何解释变量。
答案 0 :(得分:1)
试试这个:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^s=([^&]+)&type=([^&]+) [NC]
RewriteRule ^data.php$ /d.php?s=%1&t=%2 [NC,R,L]
这将从外部重定向请求:
/data.php?s=foo&type=bar
到
/d.php?s=foo&t=bar
答案 1 :(得分:1)
编辑:我道歉,我现在才注意到您已将type
参数更改为t
。因此,此解决方案将无法满足您的需求,除非对于查询字符串参数未更改的URI。我将这个答案留在这里,以便其他人可以从中学习 - 你会惊讶于有多少人不知道查询字符串会自动转移到新目的地。因此,Starkeen的答案是正确的答案。
您可以关注Starkeen的解决方案,该解决方案专门检查查询字符串并将其明确添加到d.php
。或者,为简单起见,您可以使用:
RewriteEngine on
RewriteRule ^data.php$ /d.php [R=302,L]
查询字符串将自动从data.php
转移到d.php
,您将被重定向。
要使浏览器和搜索引擎永久重定向并进行缓存,请将302
更改为301
。