我有遗产网址,如:
mysite.com/index2.php?option=com_mtree&task=print&link_id=383&Itemid=168
我想将任何包含index2.php的网址(无论index2.php之后的内容)重定向到mysite.com/my-nice-url
我试过
RewriteRule ^index2(.+) /my-nice-url/and-more/ [l,r=301]
但这使/my-nice-url/and-more/?option=com_mtree&task=print&link_id=383&Itemid=168
成为我不想要的。有人可以提供一些指导吗?
答案 0 :(得分:1)
1)重写规则模式只能是mathc 路径部分URL - 查询字符串必须单独匹配(通过RewriteCond)
2)默认情况下,如果新URL没有自己的查询字符串,则会将查询字符串传递给新URL。解决方案 - 提供空查询字符串(通过在URL末尾添加?
):
RewriteRule ^index2\.php$ /my-nice-url/and-more/? [L,R=301]
答案 1 :(得分:0)
这应该有用,即使它不是你想要的:
RewriteRule ^/index2(.+)$ /my-nice-url/and-more/?
注意:查询字符串
模式不会与查询字符串匹配。相反,你 必须使用带有%{QUERY_STRING}变量的RewriteCond。您可以, 但是,在替换字符串中创建包含查询的URL 字符串部分。只需在替换中使用问号 string,表示应重新注入以下文本 查询字符串。如果要删除现有查询字符串,请结束 替换字符串只有一个问号。结合一个新的 使用旧的查询字符串,使用[QSA]标志。