nginx伪静态重定向包括域名、 目录、文件等方法在网站建设中需要网页重定向的情况很多如网页目录结构变动网页重命名、网页的扩展名改变、网站域名改变等。如果不做重定向用户的收藏和搜索引擎数据库中的旧地址只能让访客得到一个404错误信息页面访问流量白白丧失。不仅如此之前该页面的一切积累(比如PR值)就都白费了。
301重定向不仅能使页面实现自动跳转对于搜索引擎来说也可能可以传递PR值
1 、将多个域名指向同一web目录server_name www.php100.com php100.com;rewrite^/$/ redirect;
2、将不带www的域名301转向到带www的域名server_name www.php100.com php100.com;if ($host !="www.php100.com" ) {rewrite^/(.*)$http://www.php100.com/$1 permanent;
}nginx重定向规则详细介绍rewrite命令nginx的rewrite相当于apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就可以直接使用)它可以用在server, location和IF条件判断块中,命令格式如下rewrite正则表达式替换目标flag标记flag标记可以用以下几种格式
last–基本上都用这个F lag。break–中止Rewirte不在继续匹配red irect–返回临时重定向的HTTP状态302permanent–返回永久重定向的HTTP状态301
例如下面这段设定nginx将某个目录下面的文件重定向到另一个目录,$2对应第二个括号(.*)中对应的字符串location/download/ {rewrite^(/download/.*)/m/(.*)\. .*$$1/nginx-rewrite/$2.gz break;
}nginx重定向的IF条件判断
在server和location两种情况下可以使用nginx的IF条件判断条件可以为以下几种
正则表达式
如
匹配判断
~为区分大小写匹配; !~为区分大小写不匹配
~*为不区分大小写匹配; !~为不区分大小写不匹配
例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下if ($http_user_agent~MSIE) {rewrite^(.*)$/nginx-ie/$1 break;
}
文件和目录判断
-f和!-f判断是否存在文件
-d和!-d判断是否存在目录
-e和!-e判断是否存在文件或目录
-x和!-x判断文件是否可执行
例如下面设定nginx在文件和目录不存在的时候重定向if (!-e$request_fi lename) {proxy_pass http://127.0.0.1/;
}return
返回http代码例如设置ng inx防盗链location~*\.(gif|jpg|png|swf|flv)${val id_referers none blocked http://www.php100.com/http://www.php100.cc/;if ($inval id_referer) {return 404;
}
}set
设置nginx变量
301重定向方法
并合并.有两种实现方法,第一种方法是判断nginx核心变量host(老版本是http_host)server{server_name www.php100.com php100.com;if ($host !='www.php 100.com) {rewrite^/(.*)$http://www.php100.com/$1 permanent;
}
. . .
}
第二种方法server{server_name php100.com;rewrite^/(.*)http://www.php100.com/$1 permanent;
}
测试了第一种方法ok这两种方法中 permanent是关键详细说明见nginx重定向规则说明。last–基本上都用这个F lag。break–中止Rewirte不在继续匹配redirect–返回临时重定向的HTTP状态302permanent–返回永久重定向的HTTP状态301
好了,现在可以检查结果
第二种方法没有测试成功. . .nginx rewrite伪静态配置参数详细说明(转)http://hi .baidu.com/hx10/blog/item/942a0ad784f3ffd0a144df94.htmlnginx rewrite伪静态配置参数和使用例子附正则使用说明正则表达式匹配其中
*~为区分大小写匹配
*~*为不区分大小写匹配
* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
文件及目录匹配其中
* -f和!-f用来判断是否存在文件
* -d和!-d用来判断是否存在目录
* -e和!-e用来判断是否存在文件或目录
* -x和!-x用来判断文件是否可执行flag标记有
* last相当于Apache里的[L]标记表示完成rewrite
*break终止匹配,不再匹配后面的规则
* red irect返回302临时重定向地址栏会显示跳转后的地址
*permanent返回301永久重定向地址栏会显示跳转后的地址一些可用的全局变量有可以用做条件判断(待补全)
$args
$content_length$content_type
$document_root$document_uri$host
$http_user_agent$http_cookie
$l imit_rate
$request_body_fi le$request_method$remote_addr
$remote_port
$remote_user
$request_fi lename$request_uri
$q uery_string
$scheme
$server_protocol$server_addr
$server_name
$server_port
$uri
结合QeePHP的例子if (!-d$request_fi lename) {rewrite
^/([a-z-A-Z]+)/([a-z-A-Z]+)/?(.*)$/index.php?namespace=user&control ler=$1&action=$2&$3 last;rewrite^/([a-z-A-Z]+)/?$/index.php?namespace=user&control ler=$1 last;break;
多目录转成参数abc.domian.com/sort/2=>abc.domian.com/index.php?act=sort&name=abc&id=2if ($host~* (.*)\.domain\.com) {set$sub_name$1 ;rewrite^/sort\/(\d+)\/?$/index.php?act=sort&cid=$sub_name&id=$1 last;
}
目录对换
/123456/xxxx->/xxxx?i d=123456rewrite^/(\d+)/(.+)/ /$2?id=$1 last;
例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下if ($http_user_agent~MSIE) {rewrite^(.*)$/nginx-ie/$1 break;
}
目录自动加“/”if (-d$request_fi lename){rewrite^/(.*)([^/])$http://$host/$1$2/permanent;}
禁止htaccesslocation~/\.ht{denyal l ;
}
禁止多个目录location~^/(cron|templates)/ {denyal l ;break;
}
禁止以/data开头的文件
可以禁止/data/下多级目录下. log.txt等请求;location~^/data{denyal l ;
}
禁止单个目录
不能禁止. l o g.txt能请求location/searchword/cron/{denyal l ;
}
禁止单个文件location~/data/sql/data.sql {denyal l ;
}
给favicon. ico和robots.txt设置过期时间;
这里为favicon. ico为99天,robots.txt为7天并不记录404错误日志location~(favicon. ico) {log_not_found off;expires 99d;break;
}location~(robots.txt) {log_not_found off;expires 7d;break;
}
hostyun新上了香港cloudie机房的香港原生IP的VPS,写的是默认接入200Mbps带宽(共享),基于KVM虚拟,纯SSD RAID10,三网直连,混合超售的CN2网络,商家对VPS的I/O有大致100MB/S的限制。由于是原生香港IP,所以这个VPS还是有一定的看头的,这里给大家弄个测评,数据仅供参考!9折优惠码:hostyun,循环优惠内存CPUSSD流量带宽价格购买1G1核10G3...
很久没有分享PhotonVPS的消息,最近看到商家VPS主机套餐有一些更新所以分享下。这是一家成立于2008年的国外VPS服务商,Psychz机房旗下的站点,主要提供VPS和独立服务器等,数据中心包括美国洛杉矶、达拉斯、芝加哥、阿什本等。目前,商家针对Cloud VPS提供8折优惠码,优惠后最低2G内存套餐每月4美元起。下面列出几款主机配置信息。CPU:1core内存:2GB硬盘:30GB NVm...
95idc是一家香港公司,主要产品香港GIA线路沙田CN2线路独服,美国CERA高防服务器,日本CN2直连服务器,即日起,购买香港/日本云主机,在今年3月份,95IDC推出来一款香港物理机/香港多ip站群服务器,BGP+CN2线路终身7折,月付350元起。不过今天,推荐一个价格更美的香港物理机,5个ip,BGP+CN2线路,月付299元起,有需要的,可以关注一下。95idc优惠码:优惠码:596J...