我们有一个重要的网站返工,现在我们的新网站是基于PHP的。我们有一些网站将我们的旧页面链接到它们,这些网站过去都是asp页面。我想创建一个htaccess规则,但我未能得到所需的结果。如果有人能提供帮助就会很棒。
传入的页面将采用
格式http://www.mysite.com/tour.asp?id=1234
其中 1234 是动态的,可能会有所不同。我想将其重定向到页面viewer.php
并将查询字符串变量id
更改为tourid
,因此请求的页面应为
http://www.mysite.com/viewer/1234
我在htaccess中有另一个规则,它将上面的URL路由到
http://www.mysite.com/viewer.php?tourid=1234 (这是有效的)
我需要一个规则,第一个网址被路由到第二个网址,希望它能打开第三个网址。我怎样才能做到这一点?
由于我是htaccess的新手,有人可以帮我解决如何实现这种路由吗?我想在这里清楚,服务器现在是php,我只能使用htaccess完成此操作。我跟着其他类似的问题,但发现没有一个能回答我的问题。
答案 0 :(得分:1)
UPADTE - 我第一次弄错了,这是更正后的版本。
# Match and capture the id value from the URL
RewriteCond %{QUERY_STRING} id=([0-9]+)
# Redirect by passing the ID to the new site - the ? at the end removes existing query string
RewriteRule tour.asp http://www.mysite.com/viewer/%1? [R=301,L]
我认为ID只是数字。
此答案的来源位于https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html - 搜索“修改查询字符串”以查找有关删除查询字符串的信息。