WP网站URL伪静态设置:WordPress网站URL伪静态
很多新手做完WordPress站点之后会发现文章链接长这样:https://example.com/?。
p=123
这种动态链接不仅不美观,对搜索引擎也不友好。
今天我就从零开始,带你把链接改成/archives/123.html或者/post-name这样的伪静态格式。
整篇文章只讲落地操作,不讲废话。
准备工作:确认服务器环境与伪静态条件
在动手之前,先确认两件事:
- 你的WordPress站点已经安装并可以正常访问。
- 服务器有没有安装URL重写模块(Nginx下一般是
ngx_http_rewrite_module,默认开启;Apache下需要mod_rewrite)。
如果你用的是宝塔面板(BT),Web服务通常为Nginx或Apache。
宝塔默认已开启Nginx的rewrite模块,不需要额外安装。
如果你是自己手动编译的Nginx,可以用以下命令确认模块是否加载:
nginx -V 2>&1 | grep rewrite
输出里出现“rewrite_module”就表示支持。
第一步:在宝塔面板中为站点添加伪静态规则
登录宝塔面板,进入“网站”页面,点击你要设置的WordPress站点对应的“设置”按钮。
- 找到“伪静态”选项:在站点设置弹窗中,切换到“伪静态”标签页。
- 选择预设规则:下拉菜单里找到“WordPress”并点击保存。宝塔会自动写入一套标准的WordPress伪静态规则(Nginx版)。
- 检查规则内容(可选):点击“查看规则”可以看到类似下面的内容:
location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
很多时候默认规则已经够用了。
如果你有特殊需求(比如固定链接带/archives/),规则不变,只需要在WordPress后台设置固定链接即可。
如果你不是用宝塔,而是手动配置Nginx,请把这段规则放到站点配置文件的server块内。
第二步:在WordPress后台修改固定链接
- 登录WordPress管理后台,进入“设置”->“固定链接”。
- 选择一个你喜欢的格式。推荐新手选择“文章名”(
/%postname%/),既简洁又利于SEO。 - 如果选择
/%postname%/,还需要在伪静态规则里加上一些额外配置(否则可能出现404),别急,下面避坑部分会讲。
选择好之后点击“保存更改”。
这时WordPress会自动尝试更新.htaccess文件(Apache环境)或依赖Nginx规则。
第三步:验证伪静态是否生效
访问一个文章页面,例如https://example.com/%postname%/(把%postname%替换成你的文章别名)。
如果正常进入文章页面,且网址变成了清晰干净的格式,恭喜你,设置成功。
也可以用浏览器的开发者工具(F12)查看网络请求,确认页面返回200状态码,没有重定向到index.php?。
p=...
高频问题与避坑指南
问题1:设置之后文章页全部404
- 原因:最常见的是伪静态规则不匹配。比如你选了“文章名”格式,但规则中没有处理中文别名的编码问题,或者规则里的
try_files写错了。 - 解决办法:回到宝塔伪静态设置,检查规则是否正确。宝塔的WordPress预设规则对中文链接支持良好。如果你是自己手写的规则,请确保包含:
try_files $uri $uri/ /index.php?$args;
另外,如果站点用Nginx且开启了rewrite_log on,可以查看Nginx错误日志具体报哪一行。
问题2:固定链接设置保存后提示“您的固定链接设置已更改。”但实际不变
- 原因:通常是
.htaccess文件无法写入。Apache用户需要给网站根目录写权限。 - 解决办法:切换到宝塔面板,在“网站”->“设置”->“目录权限”中,将网站目录所有者改为
www用户并给予755或775权限。然后回到WordPress后台重新保存固定链接。
问题3:设置伪静态后其他页面(如分类页、标签页)也变成404
- 原因:可能你修改了固定链接结构但未清理缓存(如果用了缓存插件)。或者伪静态规则不完整,导致
/category/...这类路径没有被正确解析。 - 解决办法:先清除WordPress缓存(包括插件缓存和浏览器缓存)。如果问题依旧,检查伪静态规则中是否包含
try_files以及$uri/,确保所有请求都能回退到index.php。
效果验证:从工具角度确认SEO改动已生效
除了肉眼检查链接格式,还推荐两步验证:
- 使用站长工具:在百度搜索资源平台或Google Search Console中提交变更后的站点地图,确保搜索引擎能爬到新链接。
- 检查301重定向:如果你是从旧格式(如
?p=123)改成新格式,建议在伪静态规则中添加301跳转,避免旧链接失效。Nginx示例:
if ($args ~* "p=(\d+)") {
set $post_id $1;
rewrite ^ /archives/$post_id.html? permanent;
}
不过对于新手,直接保存固定链接后,旧链接依然由WordPress内部处理(通过wp_redirect),不会立刻404,但最好在改链接前先做301规划。
总结
WP网站URL伪静态设置的核心就三步:服务器开启rewrite、添加对应规则、后台选固定链接。
大部分问题出在规则不完整或文件权限上。
按本文步骤操作,99%的站点都能在5分钟内完成配置。
如果你遇到宝塔面板上的特殊报错,可以在评论里留言,我会帮你看看日志输出。