如何将平面链接重写为动态链接并保留查询字符串?
我想重写一个网址,例如:
http://my.project/mydomain.com/ ANY_NUMBER_OF_CATEGORIES/designer/4/designer-name/page.html
对此:
http://my.projects/mydomain.com/ANY_NUMBER_OF_CATEGORIES/page。 html?designer=4
我想使用 mod-rewrite 来完成此任务。
需要注意的是:
- “mydomain.com/”和“/designer”之间可以有任意数量的类别。
- 例如,URL 可以是 http://my.project/mydomain.com/designer/4/designer-name/page.html 也可以是 http://my.project/mydomain.com /tops/shirts/small/designer/4/designer-name/page.html
- 可以在需要的原始网址中提供查询字符串保存在重写的 url 中。
- 例如,提供的网址可以是:http://my.project/mydomain.com/designer/4/designer-name/page.html?color=red&type=shirt
- 鉴于上面的网址,结果网址需要为:http://my.projects/mydomain.com/page.html?designer=4&color=red&type=shirt
- 查询字符串的顺序并不重要。 “designer=4”部分可以位于查询字符串其余部分之前或之后。
我是 .htaccess 的新手并重新编写,因此任何示例和/或解释将不胜感激。非常感谢。
I am wanting to rewrite a url like:
http://my.project/mydomain.com/ANY_NUMBER_OF_CATEGORIES/designer/4/designer-name/page.html
to this:
http://my.projects/mydomain.com/ANY_NUMBER_OF_CATEGORIES/page.html?designer=4
I would like to use mod-rewrite to accomplish this.
Things to note:
- Any number of categories can be between 'mydomain.com/' and '/designer'.
- For instance the url could be http://my.project/mydomain.com/designer/4/designer-name/page.html or it could be http://my.project/mydomain.com/tops/shirts/small/designer/4/designer-name/page.html
- A query string may be provided in the original url that needs to be preserved in the rewritten url.
- For example url provided could be: http://my.project/mydomain.com/designer/4/designer-name/page.html?color=red&type=shirt
- Given the url above the resulting url would need to be: http://my.projects/mydomain.com/page.html?designer=4&color=red&type=shirt
- The order of the query string does not matter. The 'designer=4' part could come before or after the rest of the query string.
I'm new to .htaccess and re-writes so any examples and or explanations would be greatly appreciated. Thank you very much.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在您的 .htaccess 文件中尝试以下操作:
Try this in your .htaccess file:
我最终不得不创建两个单独的重写规则:
感谢 Gumbo 指出重写的 [QSA] 部分。
I ended up having to create two separate RewriteRules:
Thanks to Gumbo for pointing out the [QSA] portion of the rewrite.