yinqyang 发表于 2013-2-23 08:14:10

军哥,请教nginx编写方法

军哥,您好,我想实现这个功能,但是不知道在nginx中怎么实现?
系统是phpwind9.0

因为列表页、内容阅读页等整体一致需要,要求
http://bbs.yourdomain.com/read-htm-tid-1.htm 此类网页
换成
http://www.yourdomain.com/read-htm-tid-1.htm
同时保留
http://bbs.yourdomain.com/,
http://auto.yourdomain.com/、…等频道页二级域名能正常访问。
在以前版本的时候使用修改pw文件的形式实现的。
在其global.php文件增加下面一段。

1
2
3
4
5
6
7
8
/***301重定向***/
$host= 'www.yourdomain.com'; //填写你要统一的地址
if ($_SERVER['HTTP_HOST'] != $host && in_array(SCR,array('read','thread'))) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://{$host}{$_SERVER}");
}
unset($host);
/***301重定向***/



我知道301重定向
1
2
3
4
5
6
server {
server_name www.yourdomain.com yourdomain.com *.yourdomain.com;
if ($host != 'www.yourdomain.com' ) {
rewrite ^/(.*)$ http://www.yourdomain.com/$1 permanent;
}
}


这样做的结果是所有的非www域名的二级域名都转向了www的首页。各频道的首页也不能用其二级域名显示了。
对于if ($host != 'www.yourdomain.com' ) 这个条件后面是否带'read','thread'字串,该怎样判断?
刚开始学nginx规则,请军哥帮帮忙!

谢谢!

licess 发表于 2013-2-23 08:22:42

回复 1# 的帖子

rewrite里面带参数

id886 发表于 2013-2-23 09:23:44

phpwind9.0 新问题 ,不能以PHP文件301判断了?

if ($host里带参数,   这个得学学。。看如何实现只子连接转

yinqyang 发表于 2013-2-23 10:44:03

回复 3# 的帖子

phpwind9.0 新问题 ,不能以PHP文件301判断了?
不是的,我是不想修改文件,以后升级就没那么麻烦!
我认为如果通过伪静态规则实现,用伪静态比较好吧。
页: [1]
查看完整版本: 军哥,请教nginx编写方法