NGINX的一些SEO优化常用配置

官方文档:http://nginx.org/en/docs/

常用模块:

  • ngx_http_core_module

  • ngx_http_rewrite_module

  • ngx_http_proxy_module

  • ngx_http_upstream_module

内置参数查询:

Embedded Variables

系统的基础使用教程就不再记录了,只是记录一些用到的配置方法

主域跳转www域

官方推荐分两个server,不推荐用匹配host然后转发的方式

server {
    listen       80;
    #此处填写主域
    server_name  qbsmovie.com;
    return       301 http://www.$host$request_uri;
}

server {
    listen       80;
    #此处填写WWW域
    server_name  www.qbsmovie.com;

    //网站主配置
    .....
}

多个条件的if判断

nginx没有and条件和else,注意语法比较严格,该有空格的地方必须要有空格

#特定页面的主页301跳转
set $flag_jianzhan_root 0;
        if ( $host = 'jianzhan.fxt.cn' ){
                set $flag_jianzhan_root "${flag_jianzhan_root}1";
        }
        if ( $request_uri = '/' ){
                set $flag_jianzhan_root "${flag_jianzhan_root}2";
        }
        if ( $flag_jianzhan_root = '012' ){
                return 301 http://www.fxt.cn;
        }

带参数请求转发

被转发的服务器需要接收转发前的参数

location /sitemap.xml {

                rewrite    /sitemap.xml /api/sitemap/pc?host=$host break;

                proxy_pass http://www.newjianzhan.com;

}

location /sitemap.xml {

        proxy_pass [http://www.newjianzhan.com;](http://www.newjianzhan.com%3B/)

       #通过设置header来传递是更好的解决办法

        proxy_set_header  Host $host;

}

**路由伪静态rewrite**

rewrite "/mobile/p([0-9]{1,})/news_([0-9]{1,}).html1&NewsID=$2;


**指定404页面**

error_page 404 /404.html;
···

gzip配置

https://nginx.org/en/docs/http/ngx_http_gzip_module.html

http://www.cnblogs.com/mitang/p/4477220.html

百度seo要求:修改vary的header值

#gzip_vary on;   这一行注释掉或者改成off获取不写,换成下面那行。这个配置项添加的vary头不符合要求。
#add_header Vary "Accept-Encoding, User-Agent"; 这个header用于百度移动端抓取,配合meta标签applicable-device使用

参考文章:https://ziyuan.baidu.com/college/articleinfo?id=717

配置默认服务器

默认按照server的加载顺序,第一个加载的为默认

手动指定的方法:

listen 80 default_server;

和server_name ;这个写法没有关系,'' 只是作为一个和业务域名无关的请求回收服务而已(通俗理解就是不限制传入的域名或IP),如果我们线上的业务都是明确的业务域名访问,那泛解析造成的一些非业务域名或ip访问都会被这个 sever 回收处理。

判断文件是否存在

if ( -e /www/test.php ) {
   ...
}

正则替换

#host为www.test.com,$prefix可以赋值为test_com_
if ( $host ~ ^www\.(/w)\.(/w)$ ) {
   $perfix = $1_$2_;
}

php fast_cgi传参

location ~ \ .php$ {
    ...
    fast_cgi_params DB_PREFIX $prefix;
    ...
}

此处的DB_PREFIX参数可以作为系统的env变量使用。

你可能感兴趣的:(NGINX的一些SEO优化常用配置)