网站建设服务器
Nginx URL重写配置和信息详解
URL重写有利于网站首选域的确定,301对同一资源页面的多路径重定向有助于URL权重的集中。
Nginx URL重写简介
与apache等web服务软件一样,rewrite的主要功能是重定向RUL地址。Nginx的重写功能需要PCRE软件的支持,即通过perl兼容的正则表达式语句进行规则匹配。用默认参数编译nginx会支持rewrite的模块,但也必须PCRE支持。
重写是实现URL重写的关键指令。根据regex(正则表达式)部分,它被重定向到replacement,末尾是flag标记。
rewrite的语法格式和参数语法描述如下:
rewriteregexreplacement[flag];
关键字常规替换内容标志标签
关键字:不能更改关键字error_log。
正则性:perl与规则匹配的正则表达式语句兼容。
替换内容:用替换替换常规匹配的内容。
Flag标签:重写支持的flag标签。
最后一个标签描述:
Last #此规则匹配完成后,继续向下匹配新的位置URI规则。
Break #此规则一旦匹配将被终止,并且不会再匹配更多的规则。
Redirect #返回302临时重定向,跳转后浏览器地址会显示URL地址。
永久#返回301永久重定向,跳转后的URL地址会显示在浏览器地址栏。
重写参数的标签段位置:
服务器,位置,如果
示例:
重写^/(.*)http://www.czlun.com/$1永久居民;
描述:
Rewrite是一个固定的关键字,表示启动了重写匹配规则。
正则表达式部分是/(。*),这是一个正则表达式,匹配完整的域名和后面的路径地址。
替换部分是http://www.czlun.com/$1 $ 1,它取自正则表达式部分()。匹配成功后要跳转到的URL。
标志部分permanent表示永久301重定向标志,即跳转到新的http://www.czlun.com/$1地址。
正则表达式通用正则表达式的描述
性格;角色;字母
形容
\\\\
将下列字符标记为特殊字符、原义字符或反向引用。例如,“\ \\\\n”匹配换行符,而“\ \ $”匹配“$”
^
匹配输入字符串的起始位置
$
匹配输入字符串的结束位置。
*
零次或多次匹配前一个字符。例如,“ol*”可以匹配“o”、“ol”和“oll”
匹配前一个字符一次或多次。例如,“ol”可以匹配“ol”和“oll”和“oll”,但不能匹配“o”
?
零次或一次匹配前一个字符,例如,“do(es)?”你能把“do”和“does”搭配起来吗?相当于{0,1}。
匹配除“\ \ n”以外的任何单个字符。要匹配包括“\ \ n”在内的任何字符,请使用“[”之类的模式。\ \ \ n]"。
(模式)
匹配括号中的模式,稍后您可以获得相应的匹配。您通常使用$0.$9属性来获取括号中的匹配内容。要匹配括号,需要\ \ \(内容\ \ \ \)。
重写企业应用场景
Nginx的重写功能在企业中应用广泛:
u可以调整用户浏览的网址,看起来更规范,符合开发者和产品人员的需求。
u为了让搜索引擎更好地搜索网站内容和用户体验,企业会将动态URL地址伪装成静态地址来提供服务。
把网址换成新域名后,让旧访问跳转到新域名。例如,360buy.com谁访问JD.COM将跳转到jd.com。
u根据特殊变量、目录和客户端的信息调整URL。
Nginx配置重写流程介绍(1)创建重写语句
vi conf/vhost/www.abc.com.conf
#vi编辑虚拟主机简介
文件内容
服务器{
听80;
服务器名abc.com;
重写^/(.*)http://www . ABC . com/$ 1 permanent;
}
服务器{
听80;
服务器名www.abc.com;
位置/{
root/data/www/www;
索引index.html index.htm;
}
error _ log logs/error _ www . ABC . com . log error;
access _ log logs/access _ www . ABC . com . log main;
}
或者
服务器{
听80;
abc.comwww.abc.com;
如果($主机!=\\\'www.abc.com\\\' ) {
重写^/(.*)http://www.abc.com/$1永久居民;
}
位置/{
root/data/www/www;
索引index.html index.htm;
}
error _ log logs/error _ www . ABC . com . log error;
access _ log logs/access _ www . ABC . com . log main;
}
(2)重新启动服务
确认后可以重启,操作如下:
nginx -t
#结果显示ok,没有问题就可以重启成功。
nginx -s重新加载
(3)检查跳转效果
打开浏览器访问abc.com。
页面打开后,网址地址栏中的abc.com变成了www.abc.com,表示网址已经重写成功。
更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。