常用nginx服务器的rewrite伪静态规则设置合辑

猿代码 · 2020-04-09 · 1082 人浏览

这次更换Nginx服务器,耗时最多的就是rewrite伪静态规则的配置了,第一次接触Nginx,还不是特别熟悉,下面将这几天服务器迁移过程中搜索+摸索出来的几点常用伪静态规则展示一下,以作参考。

一、Nginx服务器中的SSL伪静态配置

一般来说,申请SSL服务成功之后,可以下载得到*.pem和*.key两个文件。将这两个文件上传到服务器中,并修改以下内容,添加至nginx.conf文件中的server{}大括号里面。

    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    #下面两行修改为你的pem和key所放置的路径
    ssl_certificate    /www/server/***/cert/***/***.pem;
    ssl_certificate_key    /www/server/***/cert/***/***.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://$host$request_uri;
    #SSL-END

二、Nginx服务器中的防盗链伪静态设置

防盗链可以设置开启防盗链的URL后缀类型,也可以设置白名单的网址(可以用通配符*设置某个域),当触发防盗链时,将直接返回404状态。

    #SECURITY-START 防盗链配置
    location ~ .*\.(jpg|jpeg|gif|png|js|css)$
    {
        expires      30d;
        access_log /dev/null;
        #将下面一行的网址修改为自定义的白名单网址,支持通配符
        valid_referers none blocked imsail.com *.imsail.com;
        if ($invalid_referer){
           return 404;
        }
    }

三、Nginx服务器中的Wordpress伪静态配置

wordpress官方给出的nginx环境伪静态配置规则如下,打开 nginx.conf 或者某个站点的配置环境在 server { } 大括号里面添加下面的代码(用于网站根目录):

location / {
try_files $uri $uri/ /index.php?$args;
}

对于安装在子目录/子文件夹下(非二级域名)的wp,配置代码如下

#将sub替换为你的wp所在子目录文件夹
location /sub/{
try_files $uri $uri/ /sub/index.php?$args;
}

安装在子目录后,如果想通过二级域名直接访问wordpress,二级域名的配置代码如下(以下内容添加到二级域名的nginx.conf中)。

rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
if (!-e $request_filename){
	rewrite ^.+?(/wp-.*) $1 last;
	rewrite ^.+?(/.*\.php)$ $1 last;
	rewrite ^ /index.php last;
}

四、Nginx服务器中的Chevereto图床伪静态配置

chevereto官网给出的Nginx服务器rewrite规则如下,打开 nginx.conf 或者某个站点的配置环境在 server { } 大括号里面添加下面的代码(用于网站根目录及二级域名):

#Chevereto: Disable access to sensitive files
location ~* /(app|content|lib)/.*\.(po|php|lock|sql)$ {
    deny all;
}
#Chevereto: CORS headers
location ~* /.*\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js) {
    add_header Access-Control-Allow-Origin "*";
}
#Chevereto: Upload path for image content only and set 404 replacement
location ^~ /images/ {
    location ~* (jpe?g|png|gif) {
        log_not_found off;
        error_page 404 /content/images/system/default/404.gif;
    }
    return 403;
}
#Chevereto: Pretty URLs
location / {
    index index.php;
    try_files $uri $uri/ /index.php?$query_string;
}

引用官方说法,In case you installed Chevereto in a sub folder, the rules should look like this. 如果您将Chevereto安装在子目录/子文件夹中,nginx rewrite伪静态规则应如下所示:

#将sub替换为你的图床程序所在子目录文件夹
#Chevereto: Disable access to sensitive files
location ~* /sub/(app|content|lib)/.*\.(po|php|lock|sql)$ {
    deny all;
}
#Chevereto: CORS headers
location ~* /sub/.*\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js) {
    add_header Access-Control-Allow-Origin "*";
}
#Chevereto: Upload path for image content only and set 404 replacement
location ^~ /sub/images/ {
    location ~* (jpe?g|png|gif) {
        log_not_found off;
        error_page 404 /sub/content/images/system/default/404.gif;
    }
    return 403;
}
#Chevereto: Pretty URLs
location /sub/ {
    index index.php;
    try_files $uri $uri/ /sub/index.php?$query_string;
}

五、Nginx服务器下,访问子目录自动跳转至绑定的二级域名的伪静态配置

这里以本站blog子文件夹对应的t.imsail.com域名为例,请对照修改。打开 nginx.conf 或者某个站点的配置环境在 server { } 大括号里面添加下面的代码。

    location ~* ^/blog {
    rewrite ^/blog(.*)$ http://t.imsail.com/$1 permanent;
    }

就是这些啦,因为是刚刚摸索,所以可能会有错误的地方,欢迎大神指出~~也希望大家多多留言交流哦~~~

Chevereto 服务器 wordpress 伪静态 nginx 防盗链 SSL 重定向 二级域名 子目录
京ICP备2023019113号-1 ◎ Theme by Jasmine