Apache Redirect 301失败并带有参数

时间:2010-08-23 12:19:10

标签: apache .htaccess

我尝试从此地址进行301重定向: /web/8888/nsf/sbs.py?&_ID=9884&did=3025&PF=14&G=9884&SM=9884&lang=HE&_UserReference=956357C53FD2C8024C725EE5

到这个地址: /?page=product&p_id=9884

9884值是动态值,其他值始终不是

我尝试使用:

Redirect 301 "/web/8888/nsf/sbs.py?&_ID=9884&did=3025&PF=14&G=9884&SM=9884&lang=HE&_UserReference=956357C53FD2C8024C725EE5"  /?page=product&p_id=9884
有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

问题是Redirect在执行匹配时不检查查询字符串。相反,您需要使用mod_rewrite来执行重定向。

记住这一点,从你的示例网址中,听起来你想要这样的东西:

RewriteEngine On

# Check if the path part matches the URLs we want to redirect
# If so, check if the query string contains an ID
# If we find an ID, redirect to the correct product page with that ID number
RewriteCond %{QUERY_STRING} (\A|&)_ID=([0-9]+)
RewriteRule ^web/8888/nsf/sbs\.py$ /?page=product&p_id=%2 [R=301,L]