.htaccess重写包含下划线和参数的孤立URL

时间:2018-05-23 16:31:09

标签: .htaccess mod-rewrite url-rewriting opencart

我只是非常谨慎地修改.htaccess用于我的在线商店。

前段时间,我做了一个从osCommerce到OpenCart的网站迁移。这导致了具有以下两种示例格式的孤立的osCommerce样式URL:

http://www.londonpower.com/catalog/product_info.php?products_id=75

http://www.londonpower.com/catalog/product_info.php?cPath=15&products_id=75

互联网领域的很多网站都有我旧式网址的链接,我有大约100个,所以我想将它们重定向到新网址,格式如下:

http://www.londonpower.com/2-channel-guitar-preamp

如果我理解正确,问题分为两部分:

  1. 消除了下划线,因为它们阻碍了.htaccess引擎;

  2. 然后在网址上执行301重定向。

  3. 到目前为止,我已经能够使用此重写规则获得第一个下划线以更改为连字符:

    RewriteRule ^([^_]*)_(.*)$ /$1-$2 [R=301,L]
    

    ...但是第二个下划线(在“?”之后是查询字符串的一部分)没有运气。我被困在那里。

1 个答案:

答案 0 :(得分:0)

我会避免使用重写。文件catalog/product_info.php是否存在于新商店中?如果没有,请创建它并使用旧ID映射向新URL添加简单重定向。如果是这样,请在不同的文件中执行相同的操作,例如old-redirector.php,然后重写请求。