WordPress分类URL生成404错误,如何修复分类链接路径问题?
解决WordPress分类URL 404的问题
嘿,作为WordPress新手遇到这个问题太正常了,别慌,咱们一步步来搞定它:
一、先检查「分类基础」设置(最常见原因)
这大概率是分类的URL前缀没设置导致的,操作步骤如下:
- 登录WordPress后台,找到「设置」→「固定链接」页面
- 往下滚动到「可选」区域,找到「分类基础」(Category base)的输入框
- 你现在的情况应该是这个输入框是空的,或者被改成了其他值,导致分类URL变成了
/blog/article/,和文章的URL结构(/blog/年/月/文章名/)冲突,服务器找不到对应的内容就返回404。 - 把「分类基础」改成
category,这样分类URL就会变成/blog/category/article/,和文章URL彻底区分开 - 改完后一定要点击「保存更改」,WordPress会自动更新URL重写规则
二、手动刷新重写规则(如果第一步没生效)
有时候WordPress的重写规则不会自动更新,这时候不用改任何设置,直接:
- 回到「固定链接」页面,啥也别动,点击「保存更改」按钮就行
- 这会强制WordPress刷新重写规则,修复可能的规则错误
三、检查Apache服务器的.htaccess文件(如果用的是Apache)
如果你的服务器是Apache,WordPress需要通过.htaccess文件来管理URL重写:
- 先确保网站根目录下的
.htaccess文件权限是666(暂时设置,完成后可以改回644),让WordPress能写入规则 - 要是权限没问题还是不行,你可以手动把以下内容复制到
.htaccess文件里:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /blog/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L] </IfModule> # END WordPress
注意:如果你的blog不是根目录下的子目录,要对应修改RewriteBase和最后一行的路径
四、Nginx服务器的规则配置(如果用的是Nginx)
如果你的服务器是Nginx,需要在站点的Nginx配置文件里添加重写规则:
location /blog/ { try_files $uri $uri/ /blog/index.php?$args; }
添加完成后,重启Nginx服务就能生效了
为啥会出现这个问题?
简单来说,你的固定链接结构是/blog/%year%/%monthnum%/%postname%/,如果分类没有前缀,分类URL就会是/blog/分类名/,服务器会误以为这是一篇文章的URL,但实际上没有对应的文章,所以返回404。加上category前缀后,WordPress就能正确识别这是分类页面啦。
内容的提问来源于stack exchange,提问作者Sanwar Haider
相关产品推荐
相关产品推荐

