1

此代码工作正常:

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

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

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

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

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

4

1 回答 1

1

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

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]
于 2013-10-25T17:52:54.440 回答