Nginx配置Rewrite规则实现二级域名
时间:2015-09-06 阅读:次 QQ群:182913345
服务器中配置二级域名是很普遍的需求,在apache服务器里时我们习惯用.htaccess来完成,比如一个wap二级域名要解析进wap目录文件夹,我们可以在.htaccess里加上如下代码:
RewriteCond %{HTTP_HOST} ^wap.php520.cn$ RewriteCond %{REQUEST_URI} !^/wap/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /wap/$1 RewriteCond %{HTTP_HOST} ^wap.php520.cn$ RewriteRule ^(/)?$ wap/index.php [L] |
在Nginx中一般会在nginx.conf中配置,打开nginx.conf找到location /处。加上下面的代码:
location / { set $predomain ""; if ( $host ~* (.*).php520.cn ){ set $predomain $1; } if ( $predomain ~* 'wap' ){ rewrite ^/(.*)$ /wap/$1 ; rewrite ^/wap/test-(\d+)-.html$ /wap/test.php?id=$1 last; break; } } |
上面的代码也非常好理解,set是nginx设置变量的方法,~*表示匹配成功,上面的意思就是如果在URL的域名中匹配到了二级域名,则设置二级域名,然后将二级域名和wap对比匹配,如果匹配wap,则rewrite目录进wap目录下,然后就可以在后面添加每条rewrite规则。
上一篇:Linux上配置SVN服务器教程
下一篇:Linux文件类型与文件权限