请教一个nginx的rewrite规则

WBOY
发布: 2016-06-23 13:48:24
原创
878 人浏览过

假设我用的泛解析域名为 *.domain.com
现在我要判断当域名不为www.domain.com并且满足条件为([\w]{2,5}).domain.com的二级域名进行重定向,将其定向到www.domain.com/domain.php?domain=([\w]{2,5})的rewrite规则。

首先我是这样写的:

set $domain '';if( $hots ~* ([\w]{2,5}).\domain\.com ){    set $domain $1; } if( $domain !~ "www" ){    rewrite ^$domain\.domain\.com(.*)$ http://www.domain.com$1?domain=$domain last;}
登录后复制

于是报错为\w为不安全的匹配。
然后我又改成:
set $domain '';if( $hots ~* “([\w]{2,5}).\domain\.com" ){    set $domain $1; } if( $domain != "www" ){    rewrite ^$domain\.domain\.com(.*)$  http://www.domain.com$1?domain=$domain&query_string redirect ;}
登录后复制


这次不报错了,但是却无法正确跳转。

所以请教一下这段代码问题出在哪,我应该如何改写? 


回复讨论(解决方案)

于是报错为\w为不安全的匹配。
改写成[0-9a-zA-z]这样试试?

另外二级域名的解析也可以加在php的入口中,可以实现更灵活的功能

改成[0-9a-zA-z] 也是一样的,因之前他提示过\w的不安全后我就改成这样的,但是同样无效,后来加了双引号以后就没问题了,只是条件好像判断成不满足了

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板