LNMP环境下如何设置 不带Www和带Www的301跳转
放弃 WDCP 转 Lnmp 一键包原因
最近购买了vultr 的 $5 VPS,小内存不太适合安装面版,以前用习惯使用的WDCP面版也就不太适合安装了。自然军哥的LNMP一键包就是首选。
www 与 没www 解析错误
但因为第一次用,在 绑定网站过程中选择出现了些错误,导致只绑定了www的域名,而没www的域名并没有正确解释。
按照经验,这应该是vhost添加过程中出现的小问题,属于301跳转的范围
,这时代遇见问题当问百度。经常搜索并测试,确实只需要做少少的修改,就能解决 LNMP下,带www与不带域名 访问不同文件夹的问题。
环境是Lnmp
以下的所有操作都是基于 Centos6.x 中顺利安装的LNMP 环境进行的,本文只是做个笔记防止时间长了又给忘记了。
以本站 www.zctou.com
为例:
值得的注意的是,
LAMP中是可以使用.htaccess文件(一般都放置在每个网站根目录文件夹)来添加301代码实现跳转。而LNMP中,则只能通过修改vhost的 .conf 文件来进行rewrite。
LNMP一键安装包, .conf
文件位于 /usr/local/nginx/conf/vhost/ 目录中,
然后是根据你绑定的网站url命名找到.conf
文件,网站的.conf
文件位于/usr/local/nginx/conf/vhost/www.zctou.com.conf。
找到并修改这个文件, 添加一段301代码即可:
修改 .conf 配置
SSH登录VPS并调出命令窗口,使用 vi /usr/local/nginx/conf/vhost/www.zctou.com.conf
即可编辑.conf文件,Vi命令的使用这里就不再重复了。
这是 .conf
的文件内容:
server
{
listen 80;
#listen [::]:80;
server_name www.zctou.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/www.zctou.com;
include wordpress.conf;
#error_page 404 /404.html;
include enable-php.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /\.
{
deny all;
}
access_log off;
}
#这部份是后面添加的
server {
server_name zctou.com;
rewrite ^(.*) http://www.zctou.com$1 permanent;
}
- 方法一: 修改方法是在文件末尾“}”的后面添加以下代码:
server {
server_name zctou.com;
rewrite ^(.*) http://www.zctou.com$1 permanent;
}
保存后重启nginx服务即可验证成功把 无www 跳到 3w 网址上。
方法二: 把 3w 和 无www 的网站 分别建2个server,然后把 无www 的站 跳转到 带www 的站
- 修改 zctou.com.conf, server_name 后添加
return 301 http://www.zctou.com$request_uri;
- 修改 zctou.com.conf, server_name 后添加
修改完重启nginx:
/etc/init.d/nginx restart,
或者直接重载Lnmp
lnmp restart
重启完测跳转成功,当然带3w要跳转不带3w的方法一样,换个server而已。