首页 > Nginx, 项目实施 > nginx中配置子域名重定向的方法
201303月22

nginx中配置子域名重定向的方法

背景

最近做的一个项目是用Tomcat做的域名解析,一个tomcat下面解析了三个项目,结果在集成sso时出现了一些问题,迫不得已需要用nginx对域名做重定向处理,所以将具体的方法记录下来和大家分享下.

简要说明

做好网站的301重定向有很多的优点,对搜索引擎来说不仅可以传递网站的权重、收录以及RP的值等,具体的有点可以参考我的网站优化经验总结系列教程:如何提高网站的访问量 网站优化经验总结二如何提高网站的综合排名 网站优化经验总结一

首先解析域名

具体的代码如下:

listen       80;
server_name  iitshare.com www.iitshare.com;
root   /hapishop/wwwroot/iitshare;

重定向方法

方法一:判断nginx核心变量host(老版本是http_host),适用于绑定多个域名,都相同用途的重定向

server {
listen       80;
server_name  iitshare.com www.iitshare.com;
root   /hapishop/wwwroot/iitshare;
if ($host != 'www.iitshare.com' ) {
rewrite ^/(.*)$ http://www.iitshare.com/$1 permanent;
}
...
}

方法二:适用于多个域名,但有域名有其他用途不需要重定向的情况

server {
listen       80;
server_name  iitshare.com www.iitshare.com blog.iitshare.com;
root   /hapishop/wwwroot/iitshare;
if ($host = 'iitshare.com' ) {
     rewrite ^/(.*)$ http://www.iitshare.com/$1 permanent;
}
...
}

上面的域名blog.iitshare.com为频道域名,不需要进行重定向。
Nginx的 Rewrite Flags 的含义:
1、last – 基本上都用这个Flag。
2、break – 中止Rewirte,不在继续匹配
3、redirect – 返回临时重定向的HTTP状态302
4、permanent – 返回永久重定向的HTTP状态301

测试是否定向成功

#/usr/local/nginx/sbin/nginx -t
如果提示如下信息说明成功
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

重启nginx即可

#/usr/local/nginx/sbin/nginx -s reload
如果您使用的Apache作为应用服务器,具体配置方法如下
修改#.htaccess文件
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.yourdomain\.com
RewriteRule (.*) http://www.yourdomain.com$1 [R=301,L]

文章作者: iitshare
本文地址:http://www.iitshare.com/nginx-configuration-sub-domain-redirection.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

更多
本文目前尚无任何评论.

发表评论