htaccess:重定向301无法正常工作

时间:2013-10-25 17:46:45

标签: regex apache .htaccess mod-rewrite seo

此代码工作正常:

RewriteEngine On
RewriteBase /my/project/dir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /my/project/dir/index.php?uri=$1 [QSA,L]

但是现在我想在URL中强制www.以避免duplicate content(SEO)。我发现了这段代码片段,但我无法将其集成到我的代码中:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

我尝试了几种组合,但我不想让你感到困惑。他们都没有工作。

您如何扩展第一个(工作)代码行以实现目标?提前谢谢!

1 个答案:

答案 0 :(得分:1)

更改规则的顺序并使用301规则中的%{REQUEST_URI}

RewriteEngine On
RewriteBase /my/project/dir/

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /my/project/dir/index.php?uri=$1 [QSA,L]