htaccess重定向 - 更改URL的查询部分

时间:2013-03-14 00:10:40

标签: php .htaccess mod-rewrite redirect url-rewriting

Google选择了以下网址并对其进行了排名:

http://www.example.com/yyy/zzz-99.php?item_id=99&sort=1 item_id = 99 部分不应该在那里。

由于我收到了错误并修复了错误,因此我在htaccess中添加了以下行:

RedirectPermanent /yyy/zzz-99.php?item_id=99&sort=1 http://www.example.com/yyy/zzz-99.php?&sort=1

然而,重定向不起作用。关于我做错了什么的任何线索?

3 个答案:

答案 0 :(得分:3)

我认为你需要mod_rewrite才能实现这个单一的替换,因为它包含了一个查询字符串。

如果启用了mod_rewrite,您可以在根目录的.htaccess文件中尝试此操作:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}   ^/yyy/zzz-99\.php  [NC]
RewriteCond %{QUERY_STRING}  item_id=99&sort=1  [NC]
RewriteRule .*        /yyy/zzz-99.php?&sort=1?  [NC,L,R=301]

重定向

http://www.example.com/yyy/zzz-99.php?item_id=99&sort=1

http://www.example.com/yyy/zzz-99.php?&sort=1

对于静音映射,从[NC,L,R = 301]中删除R = 301。

答案 1 :(得分:-1)

检查.htaccess文件的名称。确保它以句号开头。

redirect 301 /index.html http://www.domain.com/index.html 
redirect permanent /index.html http://www.domain.com/index.html 
redirectpermanent /index.html http://www.domain.com/index.html

答案 2 :(得分:-1)

在.htaccess中使用301重定向:

重定向301 http://www.example.com/yyy/zzz-99.php?item_id=99&sort=1 http://www.example.com/yyy/zzz-99.php?sort=1

重定向301(从)(到)