我尝试将我的网址网址从example.com
重定向到www.example.com
。
通过使用下面的代码,它可以部分工作;所有以example.com
开头的网站的网址都会重定向到www.example.com
。
然而,在使用" index.php?slug=
"在网站网址:example.com/index.php?slug=About
中,网址被重定向到www.example.com/About
,而不是重定向到www.example.com/index.php?slug=About
。
因此,结果是两个网址(www.example.com/About
和www.example.com/index.php?slug=About
)都正常工作并显示相同的结果。
知道如何处理它,以避免搜索引擎上的重复内容?我应该在这里添加哪些条件?
感谢。
这是htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine on
# htaccess custom error messages
ErrorDocument 400 "Ooops - Bad request!"
ErrorDocument 403 "Strictly forbidden.."
ErrorDocument 401 "Speak friend and enter"
ErrorDocument 500 "Server gone wild.."
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?slug=$1 [L,QSA]
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
</IfModule>
答案 0 :(得分:2)
# htaccess custom error messages
ErrorDocument 400 "Ooops - Bad request!"
ErrorDocument 403 "Strictly forbidden.."
ErrorDocument 401 "Speak friend and enter"
ErrorDocument 500 "Server gone wild.."
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?slug=$1 [L,QSA]
</IfModule>
在进行任何index.php
重写之前,您应该执行 www -check。
此外(这只是对代码的增强/修复),您不应该将ErrorDocument
调整为mod_rewrite
,因此它已被移出块外。您还指定了RewriteEngine on
两次。您只需要指定一次。