nginx不带www到www域名的重定向

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

对于单一入口的程序如何做301重定向

由于网站的url由动态改为了伪静态,原先的动态网址依然能够访问,导致原先的url的权重无法转移,所以对原来的url做301重定向,并在百度站长中提交网站改版请求。

网上的教程都是直接根据文件重定向的,对于单一入口的程序不适用,所以写下次教程。

示例:

if ($args ~* mod=item&act=view&id=(\d+) ) {

rewrite ^/(.*)$ http://$host/item/$arg_id.html? permanent;

}

$args是当前url问号后面的部分,相当于$query_string

$arg_id是id的值,格式为$arg_

rewrite是url重写命令

permanent代表的是返回301永久重定向状态码

$host为当前网站的域名部分

结尾的问号代表不会将url后面的参数一起带过去

^和$是代表的是正则匹配

if条件中的(\d+)代表的是数字参数,如777

注意:nginx中if命令不能嵌套,不能有多条件

if条件中的等号只有一个

注意if的空格问题

if条件中可以有多条url重写语句

重定向是基于文件的,示例中是适用于index.php?mod=a&act=b的结构如:rewrite 文件A 重定向到某地址

示例:

rewrite ^/good.php$ http://$host permanent;

rewriet ^/good1.php$ http://$host/ permanent;

如果需要对网站的域名进行重定向,可参考以下示例:

将不带www的域名重定向到带www的域名

server{

......

server_name

......

if ($host = ) {

rewrite ^(.*)$ permanent;

}

}

相关文档
最新文档