Regex htaccess:重定向301不';我不能正常工作

Regex htaccess:重定向301不';我不能正常工作,regex,apache,.htaccess,mod-rewrite,seo,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.,以避免重复内容(SEO)。我找到了此代码段,但无法将其集成到我的代码中: Rewrite

此代码工作正常:

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.
,以避免
重复内容
(SEO)。我找到了此代码段,但无法将其集成到我的代码中:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
我试过几种组合,但我不想把你搞糊涂。他们没有一个人在工作


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

更改规则的顺序,并在301规则中使用
%{REQUEST\u 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]

更改规则的顺序,并在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]

如果从第二个代码段中删除
RewriteEngine
,并在
RewriteBase
之后插入其他两行,会发生什么情况?@JoachimIsaksson感谢您的回复。我以前试过这个,结果是:它忽略了
RewriteBase
。当我试图打开
domain.com/users/list/?filter=1
时,它会重定向到
www.domain.com?filter=1
。如果您只需从第二个代码段中删除
RewriteEngine
,并在
RewriteBase
之后插入其他两行,会发生什么情况?@JoachimIsaksson感谢您的回复。我以前试过这个,结果是:它忽略了
RewriteBase
。当我试图打开
domain.com/users/list/?filter=1
时,它会重定向到
www.domain.com?filter=1