我正在尝试使用htaccess或其他解决方案重写以下用于SEO和用户友好目的的Url。我已经搜索过并找到了许多答案,但没有一个给我多个参数,我也没有在这方面取得进展。
mysite.com/myfile.php?dept=1&prodid=161&user=2018&ulevel=1&parentcust=1&prodname=My widget
到
mysite.com/products/mywidget
如果我的窗口小部件有空格或撇号,我需要删除它们。例如,产品Tiger's eye widget
应为tigerseyewidget
或tigers-eye-widget
答案 0 :(得分:0)
您不必仅使用重写来解决问题。
对于初学者,让我们去掉你的查询字符串:
剥离之后,你剩下的就是myfile.php?dept = 1& prodid = 161 - 现在这是更容易重写的东西!
如何改写是另一个问题。有很多关于如何将基于查询字符串的请求重写为“漂亮网址”的示例。将Tiger's eye widget
更改为tigers-eye-widget
也有详细记录。
但是..谁生成这些链接?如果您生成这些链接,为什么不转过它并将您的产品链接到例如mysite.com/tigers-eye-widget.html然后在PHP中将“tigers-eye-widget.html”映射到产品ID 161&部门1?
您的问题应该仅适用于人们可能已添加书签或仍会出现在搜索结果中的旧版网址。但对于那些情况,重定向它们而不是重写它们是完全可以接受的。因此,您可以将映射保留在数据库或文本文件中,使用PHP处理请求并执行301重定向到新URL - 这样您就可以告诉搜索引擎将旧URL替换为新URL,您不必担心关于复杂的多个.htaccess重写规则。