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
。