0

我正在尝试使用相同的 url 结构将站点 a 重定向到站点 b。我的 htaccess 是

Redirect 301 / http://www.siteb.com/

RewriteRule ^(.*)/(.*)/(.*)$ index.php?video=$1&id=$2&words=$3

RewriteRule ^videos/(.*)$ index.php?videos=$1

但是,在重定向的站点上,它添加了其他变量。例如;

siteA.com/y/T5INF08ZEdA/Miranda-Kerr-In-Hot-Water-with-Orlando-Bloom

siteB.com/y/T5INF08ZEdA/Miranda-Kerr-In-Hot-Water-with-Orlando-Bloom?video=y&id=T5INF08ZEdA&words=Miranda-Kerr-In-Hot-Water-with-Orlando-Bloom

使用相同的 url 结构进行 301 重定向的正确方法是什么?

4

1 回答 1

1

这是因为您的代码中有两个主要问题:

  1. mod_alias 和 mod_rewrite 规则的混合。
  2. L在 mod_rewrite 规则中使用标志,这会导致在同一 URL 上触发多个规则。

我建议你只坚持使用 mod_rewrite 并保持你的 .htaccess 像这样:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)sitea\.com$ [NC]
RewriteRule ^ http://www.siteb.com%{REQUEST_URI} [L,R=301]

RewriteRule ^videos/(.*)$ index.php?videos=$1 [L,QSA,NC]

RewriteRule ^([^/]+)/([^/]+)/(.*?)/?$ index.php?video=$1&id=$2&words=$3 [L,QSA]
于 2013-08-16T22:59:42.840 回答