请教一个nginx的rewrite规则
程序员文章站
2024-01-29 17:03:40
...
假设我用的泛解析域名为 *.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的不安全后我就改成这样的,但是同样无效,后来加了双引号以后就没问题了,只是条件好像判断成不满足了
推荐阅读
-
请教一个nginx的rewrite规则
-
请教一个json传输和解码的问题
-
服务器 - 我的网站用的是阿里云ECS,Nginx+PHP搭建了一个WordPress博客,速度超级慢...
-
Nginx一个IP如何配置多个站点的方法教程
-
nginx配置,为何两个配置一模一样的server,一个能解析php,一个不能解析php呢?
-
Nginx中的rewrite指令break,last,redirect,permanent
-
php开发文章内链,替换规则的一个有关问题
-
php 关于重写规则的一个问题
-
请教怎么用PHP代码向mysql里的一个数据库添加一张新表
-
新人请教PHP大神纠正代码错误,一个简单的BLOG代码。