我有一个电子商务网站(使用ecommercetemplates购物车PHP模板创建),并且在目录页面上有时会有几个页面编号在底部。例如,这些页面的链接形式为: - /product.php?cat=27&pg=2
,尽管主页面已映射到: - /widgets
使用.htaccess文件中的重写规则。
为了保持一致性和简洁性,我希望这些页面如下: - /widgets?pg=2
。我在这个论坛上问过如何做到这一点并找到了以下解决方案: -
RewriteRule ^widgets$ products.php?cat=27 [QSA]
问题在于,尽管上述重写规则按我的意愿工作,但目录页面上的当前链接仍然指向,例如: - /product.php?cat=27&pg=2
。要转到/widgets?pg=2
,我必须在浏览器中输入此内容。
所以我的问题是:如何更改目录页面上的动态生成的当前链接?是否有任何进一步的规则可以输入.htaccess或者是否有其他解决方案可以解决这个问题?以下是产品页面的PHO代码: - http://freetexthost.com/3ubiydspzm。
在上面的链接中,如果您搜索“writepagebar”,我认为这是“下一页”,“上一页”和“页码”的完成位置。
答案 0 :(得分:1)
这个问题的答案可以在这里找到: - Adjusting a php function so that it displays link in the form of:- '/widgets?pg=2' instead of 'products.php?cat=20&pg=2'
答案 1 :(得分:0)
您有几个选择:
他们中的大多数都需要的不仅仅是.htaccess重写规则。
哈克:
RewriteCond %{QUERY_STRING} (.*)(cat=27\&)(.*) [OR]
RewriteCond %{QUERY_STRING} (.*)(cat=27)(.*)
RewriteCond %{THE_REQUEST} !widgets
RewriteRule ^products.php$ widgets?%1%3 [R=301,L]
(这可能需要重写基础选项)
http://services.rrbits.com/products.php?cat=27&pg=2
(示例链接。)