WordPress博客固定链接设置及自定义结构失效问题
其实步骤很直观,跟着操作就行:
- 先登录你的WordPress后台,在左侧菜单栏找到「设置」,点击进入后选择「固定链接」选项
- 进入页面后,「常用设置」区域里有几个预设的固定链接结构,比如“文章名”“类别+文章名”,选适合你的即可;如果需要自定义规则,就选中「自定义结构」选项
- 在输入框里填入你想要的结构(比如你提到的
/blog/%category%/%postname%),然后点击页面底部的「保存更改」按钮 - 注意:如果主机支持,WordPress会自动生成根目录的
.htaccess文件;如果不支持,页面会弹出提示,告诉你需要手动添加的代码,复制代码后用FTP工具传到网站根目录,替换原有的.htaccess文件(记得先备份原文件,以防出错)
/blog/%category%/%postname%无法生效的解决办法 遇到这种情况别着急,我整理了几个常见的排查和修复步骤,你可以逐个尝试:
检查
.htaccess文件配置
保存固定链接设置后,去网站根目录找.htaccess文件(这是隐藏文件,需要在FTP工具里开启“显示隐藏文件”的选项)。正常情况下,文件内容应该类似这样:# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress如果文件不存在或者内容不对,手动替换成上面的代码,同时确保文件权限设置为644(权限过高或过低都可能导致无法读取)
确认服务器重写模块是否启用
如果你用的是Apache服务器,得确保mod_rewrite模块已经开启。可以联系主机商确认,或者自己创建一个phpinfo.php文件,内容写<?php phpinfo(); ?>,上传到根目录后访问该文件,搜索“mod_rewrite”,能找到就说明已开启。
要是用的是Nginx服务器,需要在站点配置文件里添加重写规则:location / { try_files $uri $uri/ /index.php?$args; }添加后重启Nginx服务即可
检查分类基础设置是否冲突
在固定链接设置页面的「可选」区域,「分类基础」如果填了内容,可能会和你的自定义结构冲突。比如填了category,URL就会变成/blog/category/categoryname/postname,不符合预期。所以这里最好留空,或者确保和自定义结构匹配清除缓存
缓存可能会保留旧的URL规则,导致新规则不生效。先清除WordPress缓存插件(如果安装了的话),再清空浏览器的缓存和Cookie,之后测试新URL是否正常排查插件冲突
部分SEO插件、安全插件可能会修改固定链接规则。你可以暂时禁用所有插件,测试固定链接是否生效;如果生效了,再逐个启用插件,找到冲突的那个,要么调整它的设置,要么更换替代插件检查自定义结构语法
确认你输入的是/blog/%category%/%postname%,所有符号都是英文的,没有多余空格或中文符号(比如不要把英文%写成中文的)检查文章和分类的Slug
分类或文章的别名(Slug)如果包含特殊字符,可能导致URL解析失败。去对应的分类或文章编辑页面,检查「别名」字段,尽量用英文、数字或短横线,避免特殊字符
内容的提问来源于stack exchange,提问作者gopi

