您现在的位置是:休闲 >>正文

wordpress nginx伪静态

休闲9352人已围观

简介WordPress的伪静态,说白了就是让URL从“?p=123”变成“/hello-world”。这事在Nginx上比Apache麻烦,因为Apache天生带.htaccess,Nginx压根不认这玩 ...

WordPress的伪静伪静态,说白了就是伪静让URL从“?p=123”变成“/hello-world”。这事在Nginx上比Apache麻烦,伪静因为Apache天生带.htaccess,伪静Nginx压根不认这玩意儿。伪静你得直接改配置文件,伪静或者用站点管理面板的伪静伪静态规则框。

先说最坑的伪静地方。很多人把Apache的伪静规则直接甩到Nginx里,然后傻眼——页面404,伪静或者首页能开、伪静内页全挂。伪静原因很简单,伪静Nginx用的伪静是try_files指令,不是伪静RewriteRule那一套。正确的写法是:

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

这段代码的意思是:先找真实文件,找不到就找目录,还找不到就甩给index.php处理。就这么三行,比Apache那一大坨RewriteCond清爽多了。但你要知道,这只是基础。WordPress还有后台的固定链接设置,你得在“设置-永久链接”里选个非朴素的结构,比如“文章名”,伪静态才真正生效。

我见过有人配好了Nginx规则,后台也改了固定链接,结果访问文章还是404。查了半天,发现是WordPress的站点地址和首页地址没写对。这俩地址如果带端口号或者路径前缀,Nginx的try_files会匹配错。比如你用8080端口跑WordPress,那location就得写成location /blog/,里面再套try_files,不然绝对挂。

还有个细节容易被忽略——缓存插件。装了W3 Total Cache或者WP Super Cache,它们会生成静态HTML文件。Nginx的try_files如果先匹配到了这些静态文件,那没问题。但如果你开了伪静态又没清理缓存,旧规则和新规则打架,页面会显示乱码或者直接空白。我遇到过一回,用户骂我“改个伪静态把站弄崩了”,结果就是缓存里残留了旧的.htaccess规则生成的URL。

真正的坑在Nginx的fastcgi_pass配置。很多教程只给你看location块,不告诉你后面还要接这个:

location ~ \.php$ {  include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; } 

如果你只写了try_files,没处理PHP请求,那WordPress的后台能进,但前台所有文章页都会变成下载文件或者直接报502。因为Nginx把.php文件当静态资源发给你了,PHP-FPM根本没接管。

再聊点实战吧。我帮朋友调过一个阿里云ECS上的WordPress,用的宝塔面板。宝塔里有个“伪静态”按钮,你选WordPress框架,它自动生成规则。但生成完还是打不开文章页,我一看,他站点目录在/www/wwwroot/example.com,但宝塔默认的规则里写的是/www/wwwroot/default。路径对不上,自然失效。改完路径,刷新,好了。

还有种情况,你用了CDN加速。CDN回源到Nginx时,如果Nginx的伪静态规则没生效,CDN会把动态请求全部缓存成静态页面。用户看到的就是一个永远不变的首页——所有文章点进去都是首页内容。这个排查起来最头疼,因为源站直接访问是好的,一挂CDN就坏。解决办法是在Nginx里加一句add_header X-Cache $upstream_cache_status;,看响应头确认缓存状态,再决定要不要在CDN后台忽略查询参数。

最后说个土办法。如果你实在不想折腾Nginx配置,直接装个WordPress插件叫“Nginx Helper”。它能帮你在WordPress后台清Nginx缓存,但伪静态规则还得自己写。别迷信插件,真正的规则就那么几行,手写五分钟搞定。写完记得nginx -t测试语法,再重载服务。别问我为什么强调这个——我见过有人把分号写成中文全角,然后整个站点502,自己还找不出原因。

Tags:

相关文章

  • 逆战单刷凛冬要塞

    休闲

    《逆战单刷凛冬要塞》 凛冬要塞这图,我刷了不下两百遍。单刷的核心就一句话:**别把怪当怪,当资源**。第一波冰原狼冲脸时,你手里的霰弹枪不是用来打伤害的,是逼它们走位——狼群侧翼包抄的路径是固定的,卡 ...

    【休闲】

    阅读更多
  • 域名劫持怎么处理

    休闲

    域名劫持最直接的表现,就是输入正确网址后跳转到陌生页面,或者邮箱、后台突然收到异地登录提醒。去年有个做跨境电商的朋友,早上打开自己的独立站,发现首页变成了博彩广告,后台密码没改,服务器也没被入侵——问 ...

    【休闲】

    阅读更多
  • 2022跨境电商行业渗透率

    休闲

    2022年,跨境电商在中国进出口总额中的渗透率约为5%。这个数字听起来不大,但对比2021年的4.2%和2020年的3.6%,增速已经跑赢了同期外贸整体大盘。真正值得琢磨的是,这5%里藏着极不均衡的分 ...

    【休闲】

    阅读更多


友情链接