请教一个nginx的rewrite规则

WBOY
發布: 2016-06-23 13:48:24
原創
895 人瀏覽過

假设我用的泛解析域名为 *.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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板