apache不带www的域名永久重定向到带www
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{HTTP_HOST} ^test.com [NC]
RewriteRule ^(.*)$ https://www.test.com/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>
nginx
如下:在ngxin域名的配置文件vhost/www.abc.com.conf(具体视你域名配置文件) 编辑如下:
.....
......
server
{
........
server_name www.test.com ;//只留一个
......
}
文件的底部添加如下代码块(独立于上面的代码外):
server {
server_name abc.com;
rewrite ^(.*)$ http://www.test.com$1 permanent;
}
另外补充说明一点:
301永久跳转,当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息中的状态码的一种,表示本网页永久性转移到另一个地址。
302临时跳转,也是状态码的一种,意义是暂时转向到另外一个网址。
二者的区别主要是,一句话,302容易被搜索引擎视为spam,301则不会。
permanent代表301永久跳转,改为redirect则为302临时跳转。
bt
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}