我正在清理一些旧东西,我需要做一些301重定向。
例如:
我有以下绝对网址:http://mysite.dk/product.asp?product=371&sub=0&page=1
我需要重定向到: http://mysite.dk/category/test
我尝试过使用htaccess:
RedirectMatch 301 /product.asp?product=371&sub=0&page=1 /category/test
但是上面的代码不起作用,它显示404页面并忽略我刚刚制作的重定向。请注意,product.asp不作为文件存在!
但是,如果我使用:
RedirectMatch 301 /product.asp /category/test/
它可以排序,但现在我无法根据该特定文件的查询字符串进行重定向。
有什么建议吗?顺便说一句,我正在使用Prestashop =) 最好,西蒙
答案 0 :(得分:1)
您无法使用RedirectMatch
指令匹配查询字符串。请改用mod_rewrite
规则:
RewriteEngine On
RewriteCond %{QUERY_STRING} product=371&sub=0&page=1
RewriteRule ^product\.asp$ /category/test/? [L,NC,R=301]
目标中的 ?
将剥离现有的查询字符串。
答案 1 :(得分:1)
mod_alias旨在处理简单的URL操作任务。对于更复杂的任务,例如操作查询字符串,请使用mod_rewrite提供的工具。
来自here
只需将@anubhava回答中的规则添加到Prestashop .htaccess中即可。最好在# ~~start~~
行之前执行此操作,您将在文件中看到通知。