Mod rewrite mod_rewrite,使用查询将一个URL更改为完全不同的URL

Mod rewrite mod_rewrite,使用查询将一个URL更改为完全不同的URL,mod-rewrite,Mod Rewrite,我正在将数据从一个内容管理系统迁移到另一个内容管理系统。旧URL和新URL之间没有关系,尽管两者都包含查询字符串。我正在尝试建立一个SETA重写,将广泛的数据类别列表从一个重定向到另一个 以下是一个示例: 旧的 rss.php?categoryID=53 新的 php?module=news&type=user&func=list&tid=1&filter=blogtosic:eq:19 我试过了 重写规则^rss.php\?categoryID=53 index.php?module=news

我正在将数据从一个内容管理系统迁移到另一个内容管理系统。旧URL和新URL之间没有关系,尽管两者都包含查询字符串。我正在尝试建立一个SETA重写,将广泛的数据类别列表从一个重定向到另一个

以下是一个示例:

旧的 rss.php?categoryID=53

新的 php?module=news&type=user&func=list&tid=1&filter=blogtosic:eq:19

我试过了

重写规则^rss.php\?categoryID=53 index.php?module=news&type=user&func=list&tid=1&filter=blogtosic:eq:19[L]

但它不匹配。如果我跟在那个后面

重写规则^rss.php index.php?module=news&type=user&func=list&tid=1[L]

如果不匹配,那么我的结论是旧URL中的问号导致了问题。我已经摆脱了问号。我该怎么办


在.htaccess文件中,我可能会得到大约50个这样的字符串。

重写规则中,您无法匹配查询字符串(所有在之后的内容?),您需要使用
重写cond
并匹配`{query\u string}变量:

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]

谢谢。你的“或”把我弄糊涂了。如果我改为重定向,我不必执行重写条件?您仍然需要重写条件,只要在
重写规则
末尾的括号中添加一个
R=301
,如果您想实际重定向浏览器而不是内部重写