我需要重定向任何没有“www”的网址。到“www。”的网址为了更好的搜索引擎优化。我读到mod_rewrite和.htaccess文件可以实现这一点,但我不知道使用正确的代码。有人可以帮忙吗?
答案 0 :(得分:7)
在根文件夹中创建一个名为.htaccess的文件(例如,index.html或index.php所在的文件夹)。将以下内容放入其中:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain\.com [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]
答案 1 :(得分:1)
在Apache的URL Rewriting Guide中有一个很好的例子。
以下代码会将任何非www请求重定向到www请求:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www.example.com/$1 [L,R=301]
您希望将其放在.htaccess文件的<Directory>
指令或apache配置文件中。
答案 2 :(得分:0)
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) http://www.example.com/$1 [L,R=301]
答案 3 :(得分:0)
要从您的网址中删除www,请在.htaccess
上使用此代码RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
要在您的网站上强制使用www,请在.htaccess上使用此代码
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^YourSite.com$
RewriteRule ^(.*)$ http://www.yourSite.com/$1 [R=301]
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule ^(([^/]+/)*[^./]+)$ /$1.html [R=301,L]
“你的网站”必须替换你的网址。
答案 4 :(得分:0)
除了使用mob_rewrite,您还可以使用虚拟主机指令
执行此操作<VirtualHost example.com>
ServerName example.com
Redirect permanent / http://www.example.com
</VirtualHost>
我通常以相反的方式去除无关的'www'。