try_files实现wordpress伪静态-WordPress开发教程

wordpress伪静态,大家都是用下面的配置文件来实现。location / { if (-f $/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php

wordpress伪静态,大家都是用下面的配置文件来实现。

location / {
	if (-f $/index.html){
	    rewrite (.*) $1/index.html break;
	}
	if (-f $request_filename/index.php){
	    rewrite (.*) $1/index.php;
	}
	if (!-f $request_filename){
	    rewrite (.*) /index.php;
	}}

这是rewrite 通过加载外置的PCRE规则来实现的,外置的东西,效率肯定不高的。
今天给诸位介绍一种通过核心模块里面的try_files指令来实现伪静态,而且只需要一行配置代码:

try_files $uri $uri/ /index.php?$args;

完整的配置文件如下:

# Upstream to abstract backend connection(s) for php
upstream php {
        server unix:/tmp/php-cgi.socket;
        server 127.0.0.1:9000;
}
server {
        ## Your website name goes here.
        server_name domain.tld;
        ## Your only path reference.
        root /var/www/wordpress;
        ## This should be in your http block and if it is, it's not needed here.
        index index.php;
        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }
        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }
        location / {
                # This is cool because no php is touched for static content.
                # include the "?$args" part so non-default permalinks doesn't break when using query string
                try_files $uri $uri/ /index.php?$args;
        }
        location ~ \\.php$ {
                #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                include fastcgi.conf;
                fastcgi_intercept_errors on;
                fastcgi_pass php;
        }
        location ~* \\.(js|CSS|png|jpg|jpeg|gif|ico)$ {
                expires max;
                log_not_found off;
        }
}

注意php.ini文件里面的cgi.fix_pathinfo应该设为0,安全性更高。

相关解释:

log_not_found指令

语法: log_not_found on | off;
默认值: on;
配置段: http, server, location

启用或者禁用404错误日志,这个指令可以用来禁止nginx记录找不到robots.txt和favicon.ico这类文件的错误信息。

try_files

这个指令可以按照参数顺序检查文件是否存在,以及返回第一个被找到的文件名,以"/"结尾的表示一个目录。如果文件没有找到,将被内部重定向到最后一个参数上。最后的参数是一个后备的URI,它必须存在,否则会报内部错误。

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/121884

WordPress安全防护插件
服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

电子邮件地址不会被公开。 必填项已用*标注