Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess Seo 301绝对url重定向,Prestashop_.htaccess_Url_Redirect_Seo_Prestashop - Fatal编程技术网

.htaccess Seo 301绝对url重定向,Prestashop

.htaccess Seo 301绝对url重定向,Prestashop,.htaccess,url,redirect,seo,prestashop,.htaccess,Url,Redirect,Seo,Prestashop,我正在清理一些旧东西,我需要做一些301重定向 例如: 我有以下绝对网址: 我需要重定向到: 我已尝试使用htaccess: RedirectMatch 301 /product.asp?product=371&sub=0&page=1 /category/test 但是上面的代码不起作用,它显示404页面,忽略了我刚才做的重定向。请注意,product.asp不作为文件存在 但是,如果我使用: RedirectMatch 301 /product.asp /catego

我正在清理一些旧东西,我需要做一些301重定向

例如:

  • 我有以下绝对网址:

  • 我需要重定向到:

我已尝试使用htaccess:

RedirectMatch 301 /product.asp?product=371&sub=0&page=1 /category/test
但是上面的代码不起作用,它显示404页面,忽略了我刚才做的重定向。请注意,product.asp不作为文件存在

但是,如果我使用:

RedirectMatch 301 /product.asp /category/test/
它可以正常工作,但现在我无法根据特定文件的查询字符串进行重定向

有什么建议吗?顺便说一句,我使用的是Prestashop=)
最好,Simon

您不能使用
重定向匹配
指令匹配查询字符串。改用
mod_rewrite
规则:

RewriteEngine On

RewriteCond %{QUERY_STRING} product=371&sub=0&page=1
RewriteRule ^product\.asp$ /category/test/? [L,NC,R=301]
中的目标是剥离现有的查询字符串

mod_alias设计用于处理简单的URL操作任务。对于更复杂的任务,如操作查询字符串,请使用mod_rewrite提供的工具


只需将@anubhava answer中的规则添加到Prestashop.htaccess中,它就会起作用。最好在
#~~开始~~
行之前完成,您将在文件中看到通知。

我明白您的意思。解决这个问题的首选方法是什么?不幸的是,我无法让你的代码工作。它显示404:/Btw,因为我看到您的代码正在重写,而不是重定向,是真的吗?:)同样的规则也适用于我的Apache。你还有其他规定吗?如果是这样,请确保将此规则作为第一条规则。@simond不,这不是真的。它正在重定向。这就是
R=301
告诉它的。与上次尝试中使用的301相同。