请教一个nginx的rewrite规则
程序员文章站
2022-06-07 09:04:15
...
假设我用的泛解析域名为 *.domain.com
现在我要判断当域名不为www.domain.com并且满足条件为([\w]{2,5}).domain.com的二级域名进行重定向,将其定向到www.domain.com/domain.php?domain=([\w]{2,5})的rewrite规则。
首先我是这样写的:
于是报错为\w为不安全的匹配。
然后我又改成:
这次不报错了,但是却无法正确跳转。
所以请教一下这段代码问题出在哪,我应该如何改写?
现在我要判断当域名不为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邮箱地址正则表达式验证_PHP
下一篇: yii框架中插入出现有关问题
推荐阅读
-
Nginx伪静态配置和常用Rewrite伪静态规则集锦
-
Maya怎么制作一个不规则扭曲的曲面?
-
修改Nginx屏蔽网址的规则的方法
-
一个等号引发的血案(谈Nginx正确的404配置)
-
Nginx下配置pathinfo及ThinkPHP的URL Rewrite模式支持
-
简介Nginx中的location匹配规则
-
Nginx下支持Thinkphp URL Rewrite的配置示例
-
Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式
-
WordPress在window2003 IIS ISAPI ReWrite下的URL规则
-
Nginx下让WordPress支持固定链接的伪静态规则