如何对查询字符串进行 .htaccess 301 重定向?

如何对查询字符串进行 .htaccess 301 重定向?

我正在尝试重定向一个 URLhttp://domain.com/?p=106http://domain.com/?p=110

我的.htaccess 文件如下所示:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^p=106
RewriteRule / http://domain.com/\?p=110 [L,R=301]

但我似乎无法让它工作。

答案1

根据文档,您需要在Options FollowSymLinks尝试之前检查是否已启用。然后,您还必须注意,每个目录的前缀都会自动删除,这意味着带有的模式永远不会匹配任何内容(我敢打赌这就是您的不起作用的原因)。rewrite.htaccess^//

因此,对于您来说,首先检查Options FollowSymLinks,然后将其更改RewriteRule为 covener建议或者我的版本:

RewriteRule ^$ /?p=110

答案2

RewriteRule / 无法匹配 htaccess 中对 / 的请求。在这种情况下,您比较的路径为空(htaccess rewriterule 中的前缀被删除)

RewriteRule ^$ http://domain.com/?p=110 

相关内容