我们不小心向链接格式错误的客户发送了一些电子邮件。特别是,URL参数被命名为“id”,它应该是“ri”。 我很难设置一个重写规则来处理这些链接并将客户带到正确的位置。在我的重写规则应用并误解之前,似乎Joomla总是“抢夺”“id”参数,从而导致不必要的404错误。
这应该在理论上起作用:
RewriteCond %{QUERY_STRING} id=([slg][^&]+)
RewriteRule ^([den]{2}/)?product/(.*)$ $1product/$2?ri=%1 [L,R=301]
事实上,当我用“xyz =”替换“id =”时,确实有效。但是,“id”没有这样的运气。
我在Joomla中启用了SEF链接和重写功能。以上规则位于根文件夹中的.htaccess
文件中(其中还包含Joomla默认重写规则)。 Joomla版本是2.5.14。我需要做些什么来完成这项工作?
答案 0 :(得分:1)
在.htaccess
之前,joomla无法采取行动如果您在第一个条件下有这个条件,我会删除L参数,因为它可以阻止Joomla构建自己的重写规则。
如果要检查,如果满足条件,只需写一个rewriteRule http://www.google.com [L],检查ID =参数是否真正被识别
答案 1 :(得分:0)
很少有建议
QSA
标志。这会将id
和ri
参数保留在结果网址中,然后让不同的代码采用他们想要的任何参数建议规则:
RewriteCond %{QUERY_STRING} (?:^|&)id=([slg][^&]+) [NC]
RewriteRule ^([den]{2}/)?product/(.*)$ $1product/$2?ri=%1 [NC,QSA,NE,L,R=301]