起因
搭建这个博客也有俩礼拜了,除了更新自己准备面试时的笔记外就没更新啥。看了下这个导航栏啥都没有就一个搜索和自己的icon,于是想着添加几个项目。
在wordpress后台的外观-菜单里添加了菜单项后发现分类目录会定向到Nginx的404页面。面向百度编程后看到有博客说只要在后台的设置-固定链接把固定链接结构和分类前缀一改就好。于是我把原先链接结构从
`/index.php/%category%/%post_id%`
改成了
`/%category%/%post_id%`
修改后我连自己之前发的博文都打不开了。气晕
解决方案
在百度上找了半天wordpress的解决方案都说改改固定链接格式啥的就好了,但是都没有用。盯着404网页的nginx陷入沉思后,我突然想起来这个站点是在nginx上搭建的。于是开始怀疑是不是nginx没有将固定链接的地址放行还是咋的。
结果还真是。
具体来说就是nginx上没有配置好伪静态。
啥是伪静态?
伪静态是一种在WEB开发中常见的技术手段,用于将动态网页(如PHP、ASP、JSP等生成的页面)的URL地址转换为静态网页的URL格式。其目的主要有两个:一是为了优化搜索引擎的检索(SEO),二是为了提高用户体验。在传统的动态网页URL中,通常包含问号、等号等特殊字符,如example.com/index.php?id=123
,这样的URL对搜索引擎不友好,也不便于用户记忆。通过伪静态技术,可以将这样的URL重写为类似example.com/index/123.html
的格式。
nginx如何配置好伪静态
在nginx的配置文件的server部分加上下边的代码:
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
这条规则的作用是尝试将所有非文件、非目录的请求重写到index.php
,同时保留查询字符串。
nginx是啥?
Nginx (发音为“engine x”) 是一款轻量级的Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器,它以其高性能、稳定性、丰富的功能集、简单的配置以及低资源消耗而闻名。
高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
主要特点
- 高性能:Nginx能够处理大量的并发连接,使用非阻塞事件驱动的架构,这使得它在高并发环境下表现出色,尤其是静态内容的分发、反向代理以及负载均衡。
- 轻量级:Nginx使用极少的系统资源,即使在非常低的硬件配置上也能运行良好。
- 高度可配置:Nginx提供了广泛的配置选项,支持URL重写、自定义日志、在线升级等高级功能。
- 反向代理和负载均衡:Nginx常用作反向代理服务器和负载均衡器,能够将客户端的请求转发给后端服务器,并根据配置规则分配请求,从而提高网站的可用性和性能。
- 安全性:提供了诸如SSL/TLS加密、HTTP/2支持、防止DDoS攻击的机制等安全特性。
- 扩展性:通过模块化设计,Nginx允许用户根据需求添加新的功能。它支持第三方模块,使得社区可以贡献和扩展Nginx的功能。
使用场景
- 作为Web服务器:直接处理HTTP请求,快速服务静态内容,同时也支持动态内容处理,如通过与PHP-FPM等后端处理器配合运行PHP应用。
- 作为反向代理服务器:站在客户端与一组服务器之间,接收来自客户端的请求并将其转发给内部服务器,然后将响应返回给客户端。这有助于提高安全性、性能和可靠性。
- 负载均衡器:在多个服务器之间分配客户端请求,提高网站的处理能力和可用性,确保没有单点故障。
- 邮件代理服务器:处理IMAP/POP3邮件服务,提供认证和加密等邮件服务支持。
Comments NOTHING