此代码工作正常:
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]
我尝试了几种组合,但我不想让你感到困惑。他们都没有工作。
您如何扩展第一个(工作)代码行以实现目标?提前谢谢!
答案 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]