nginx的Rewrite规则案例分享
1、将cnbugs.com跳转到www.cnbugs.com
if ($host = 'cnbugs.com' ) {
rewrite ^/(.*)$ http://www.cnbugs.com/$1 permanent;
}
2、访问www.cnbugs.com跳转到www.wangxuejin.cn/new/index.html
if ($host = 'www.cnbugs.com') {
rewrite ^/$ http://www.wangxuejin.cn/new/index.html permanent;
}
3、访问/cnbugs/test01跳转到/wangxuejin.html。浏览器地址不变
rewrite ^//cnbugs/test01/$ /wangxuejin.html last;
4、多域名跳转到www.cnbugs.com
if ($host != ‘www.cnbugs.com’ ) {
rewrite ^/(.*)$ http://www.cnbugs.com/$1 permanent;
}
5、访问目录或文件不存在跳转到index.php
if ( !-e $request_filename )
{
rewrite ^/(.*)$ /index.php last;
}
6、目录对换/xxxx/123456 ====> /xxxx?id=123456
rewrite ^/(.+)/(\d+) /$1?id=$2 last;
7、判断浏览器User Agent跳转
if( $http_user_agent ~ MSIE)
{
rewrite ^(.*)$ /ie/$1 break;
}
8、禁止访问以.sh,.flv,.mp3文件后缀名的文件
location ~ .*\.(sh|flv|mp3)$
{
return 403;
}
9、将移动用户跳转到移动端
if ( $http_user_agent ~* "(Android)|(iPhone)|(Mobile)|(WAP)|(UCWEB)" )
{
rewrite ^/$ http://m.cnbugs.com/ permanent;
}
10、匹配URL访问字符串跳转
if ($args ~* tid=13){
return 404;
}
11、访问/10690/cnbugs/123跳转至/index.php?tid/10690/items=123,[0-9]表示任意一个数字,+表示多个,(.+)表示任何多个字符。
rewrite ^/([0-9]+)/cnbugs/(.+)$ /index.php?tid/$1/items=$2 last;
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。