wordpress 在nginx服务器下重写路由,解决设置固定链接后出现404错误

在利用wordpress搭建网站后,就想优化链接,这个没错,但是优化链接wordpress给出了几种固定链接的模式,选择固定链接后网站内页就出现了404错误。这个错误对于用过wordpress的你都遇到过,当然我也遇到过,但是遇到问题不怕,怕的时遇到后不理智的去解决。我在这里给大家一点我的解决方案。

首先出现这个404错误肯定是链接找不到了,那说明是路由问题,路由问题是由于设置了wordpress固定链接导致的结果,设置固定连接后服务器又没有配置路由规则,所以导致了404错误。

第二 原因找到后接着就是要确定你所使用的服务器是什么服务器,不同的服务器配置也不一样。

最后配置服务器路由规则,解决404问题,不同服务器具体解决方法如下:

一、Apache服务器

1、首先确定Apache是否加载了Mod_rewrite 模块

方法: 检查 /etc/httpd/conf/httpd.conf 中是否存在以下两段代码 (具体路径可能会有所不同,但形式基本是一样的):

a. LoadModule rewrite_module libexec/mod_rewrite.so

b. AddModule mod_rewrite.c

2、检查Apache是否开启.htaccess支持

vi  /etc/httpd/conf/httpd.conf

AllowOverride All   #如果后面参数为None需要修改为All(大概在338行)

3、在文件/etc/httpd/conf/httpd.conf相应的主机目录配置中加入如下代码(此时须注意,如果网站是通过虚拟主机来定义,请务必加到虚拟主机配置中去,否则可能无法使用。)

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

如下:

vi /etc/httpd/conf/httpd.conf  #编辑

<Directory "/var/www/html">

Options Includes ExecCGI FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

</Directory>

4、重启Apache

/etc/init.d/httpd restart

二、nginx服务器

1.找到/usr/local/nginx/conf/nginx.conf配置文件中的Server{}字段(注关与nginx配置文件详情讲解请查看文章《nginx.conf配置文件各个功能模块详细说明》)在Server字段中加入如下代码。

 

if (-f $request_filename/index.html){

rewrite (.*) $1/index.html break;
}

if (-f $request_filename/index.php){

rewrite (.*) $1/index.php;
}

if (!-f $request_filename){

rewrite (.*) /index.php;
}

我的Wordpress博客是的 server{}段是单独放到vhost/目录来存放每个网站的配置文件。最后再在nginx.conf配置文件下加载上对应的配置文件 include enjoykz.conf

貌似官方给出了新的开启wordpress固定链接的方法,也简单的多。这里假设,我在nginx的conf文件夹下创建个wordpress.conf ,将下面的代码粘贴进去:

location / {

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

最后再在你对应网站的配置文件中加载include wordpress.conf。

当你解决404页面问题后,发现后台又会出现404错误。有的人测底崩溃了,这里我也顺便给一个解决方案:就是在刚才添加的代码后面再添加一个规则:rewrite /wp-admin$ $scheme://$host$uri/ permanent;

最后保存文件:wq

重启nginx :server nginx restart

三、IIS服务器

在网站根目录新建一个文件保存为httpd.ini,在该文件下输入如下代码:

[ISAPI_Rewrite]

# Defend your computer from some worm attacks

#RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files

# from accessing through HTTP

# Rules to ensure that normal content gets through

RewriteRule /tag/(.*) /index\.php\?tag=$1

RewriteRule /software-files/(.*) /software-files/$1 [L]

RewriteRule /images/(.*) /images/$1 [L]

RewriteRule /sitemap.xml /sitemap.xml [L]

RewriteRule /favicon.ico /favicon.ico [L]

# For file-based wordpress content (i.e. theme), admin, etc.

RewriteRule /wp-(.*) /wp-$1 [L]

# For normal wordpress content, via index.php

RewriteRule ^/$ /index.php [L]

RewriteRule /(.*) /index.php/$1 [L]

### 解决 WordPress 网站上 404 错误的方法 #### 排查与解决步骤 当遇到 WordPress 后台登录界面显示 404 页面找不到的情况时,可以尝试以下几种方法来解决问题: - **禁用插件**:有时某些插件可能会干扰正常访问路径。可以通过 FTP 或者主机文件管理器进入 `wp-content/plugins` 文件夹并重命名该目录下的任意一个子文件夹名称(比如加上 `-old`),以此方式临时关闭所有插件。之后再次测试是否能成功登陆后台[^1]。 - **切换默认主题**:如果最近更改过主题,则可能是新主题存在兼容性问题或是缺少必要的模板文件。通过修改站点根目录下 wp-config.php 中加入如下代码强制加载默认 Twenty 十几年的主题来进行排除法验证: ```php define('TEMPLATEPATH', '/path/to/twentytwentyone'); define('STYLESHEETPATH', '/path/to/twentytwentyone'); ``` - **检查 .htaccess 文件配置**:对于 Apache 服务器环境来说,.htaccess 是非常重要的配置文件之一。它控制着 URL 重写规则等功能。若此文件丢失或被篡改可能导致大量内部链接失效而返回 404 。建议先备份现有版本再按照官方文档恢复标准设置。 - **确认 Nginx 配置无误**:如果是基于 Nginx 构建的服务端架构的话,那么就需要特别留意其 location 和 try_files 指令部分的定义准确性了。确保它们能够正确处理静态资源请求以及动态 PHP 脚本解析工作。具体做法参照相关教程调整 server block 设置[^2]。 - **更新固定链接结构**:前往仪表盘内的“设置 -> 固定链接”,无需做任何改动只需点击保存按钮即可刷新缓存数据,从而帮助系统重新识别已有的路由映射关系。 - **修复 Yoast SEO 插件引起的网站地图 404**:针对特定于 Yoast SEO 所产生的 sitemap.xml 不可达现象,应考虑升级至最新稳定版程序包;另外还需保证 XML-Sitemaps 功能处于开启状态,并且允许搜索引擎抓取这些地址[^3]。 - **运行数据库优化命令**:利用 phpMyAdmin 工具连接到 MySQL 数据库执行一系列维护性质的操作,例如 OPTIMIZE TABLES 来整理碎片化存储空间,或者 REPAIR TABLE 对疑似受损的数据表实施自动修正措施[^4]。 以上就是关于如何应对 WordPress 平台上普遍存在的 404 Not Found 报错状况的一些常见技巧汇总。希望上述指导可以帮助大家快速定位原因并采取有效行动恢复正常服务!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值