我正在将数据从一个内容管理系统迁移到另一个内容管理系统。旧URL和新URL之间没有关系,尽管两者都包含查询字符串。我正在尝试设置一个重写集,将大类数据列表从一个重定向到另一个。
以下是一个示例:
OLD rss.php?的categoryID = 53
NEW ?的index.php模块=新闻与类型=用户安培; FUNC =列表&安培; TID = 1&安培;过滤器= blogtopic:当量:19
我试过
RewriteRule ^ rss.php \?categoryID = 53 index.php?module = news& type = user& func = list& tid = 1& filter = blogtopic:eq:19 [L]
但它不匹配。如果我用
跟随那个RewriteRule ^ rss.php index.php?module = news& type = user& func = list& tid = 1 [L]
如果DOES匹配,那么我得出结论,旧URL中的问号导致了问题。我已经逃脱了问号。我该怎么办?
我可能会在我的.htaccess文件中找到大约50个。
答案 0 :(得分:0)
您无法在RewriteRule
中与查询字符串(?之后的所有内容)匹配,您需要使用RewriteCond
并匹配` %{QUERY_STRING} var:
RewriteCond %{QUERY_STRING} ^categoryID=53$
RewriteRule ^rss\.php$ /index.php?module=news&type=user&func=list&tid=1&filter=blogtopic:eq:19 [L]
如果要重定向浏览器,请将括号更改为[R=301,L]
。