2011-04-19 87 views
1

我们在新网站的动态网页范围中犯了一个错误,并且在Google中已经出现了一些不正确的网页。动态301重定向

我需要以下格式重定向: http://www.domain.com/dir/dir/?q=120

为此格式: http://www.domain.com/dir/dir/?p=120

唯一的区别是 'Q' 需要一个 'P'。

RewriteEngine叙述上,因为我已经从综合交通domain.com到www.domain.com

这是我在我的根.htaccess文件:

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^centerline.com [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] 
RewriteRule ^(/leadership/detail/)\?q=([0-9]+)$ $1?p=$2 [R=301, L] 

回答

2

试试这个:

RewriteCond %{QUERY_STRING} q=([0-9]+)$ 
RewriteRule ^(.*)$ /$1?p=%1 [L,R=301] 

你需要的RewriteCond例如Apache不允许对查询字符串匹配的RewriteRule

编辑

RewriteCond %{REQUEST_URI} ^/leadership/detail/$ 
RewriteCond %{QUERY_STRING} q=([0-9]+)$ 
RewriteRule ^(.*)$ /$1?p=%1 [L,R=301] 
+0

嗯,仍然没有工作。此语法正确: 'RewriteCond%{QUERY_STRING} q =([0-9] +)$ RewriteRule ^(/ leadership/detail /)$/$ 1?p =%1 [L,R = 301]' – Keefer 2011-04-19 20:13:56

+0

我已经编辑了答案,以包含您正在寻找的特定请求-Uri。 – clmarquart 2011-04-19 20:18:25

+0

这是现在的工作。谢谢你的时间。 – Keefer 2011-04-19 20:45:24