动态301重定向

时间:2011-04-19 19:22:49

标签: regex apache .htaccess http-status-code-301

我们在新网站上的动态网页范围内犯了一个错误,并且在Google中已经有一些不正确的网页。

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

采用以下格式: http://www.domain.com/dir/dir/?p=120

唯一不同的是'q'需要是'p'。

RewriteEngine已启用,因为我已将来自domain.com的流量整合到www.domain.com

这就是我在root .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]

1 个答案:

答案 0 :(得分: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]