伪静态配置:WordPress/Typecho 开启 SEO 友好链接
很多站长在搭建 WordPress 或 Typecho 后,发现文章链接是 `?p=123` 这种丑陋的带参数格式,搜索引擎根本不买账。主机选的 Linux 教程里,这步操作叫“伪静态配置”,核心就一句话:**让动态页面看起来像静态 HTML,对 SEO 和用户体验都友好**。这篇文章直接给你 Nginx 和 Apache 两种方案,照着做就行。

为什么 WordPress/Typecho 必须开启伪静态?
伪静态配置的核心目的,是把动态 URL(如 `index.php?p=123`)重写为静态 URL(如 `/post/hello-world.html`)。搜索引擎更喜欢后者,因为:
• 关键词出现在 URL 里,提升相关性;
• 静态路径更容易被爬虫抓取和索引;
• 用户一看就知道页面内容,点进来的概率更高。
WordPress 和 Typecho 都内置了伪静态支持,但前提是服务器必须开启 URL 重写模块。下面分情况讲。
Nginx 下 WordPress 伪静态配置
Nginx 没有 .htaccess,伪静态规则写在站点配置里。找到 Nginx 的站点配置文件,一般在 `/etc/nginx/sites-available/` 或 `/etc/nginx/conf.d/`。
nginx
server {
listen 80;
server_name yourdomain.com; # 换成你的域名
root /var/www/wordpress; # 网站根目录
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args; # 核心:找不到文件就交给 index.php 处理
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据 PHP 版本调整
}
}
配置完成后,重启 Nginx:
sudo nginx -t # 检查语法,别问为什么,先跑一次
sudo systemctl reload nginx
然后进入 WordPress 后台 → 设置 → 固定链接,选“文章名”或自定义结构,比如 `/archives/%post_id%.html`。
Apache 下 Typecho 伪静态配置
Typecho 默认支持 .htaccess,但很多新手忘记开启 mod_rewrite。先在终端确认模块是否加载:
sudo a2enmod rewrite # 开启重写模块
sudo systemctl restart apache2
然后在 Typecho 站点根目录创建或编辑 `.htaccess` 文件:
apache
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L] # Typecho 的伪静态规则
</IfModule>
保存后,进入 Typecho 后台 → 设置 → 永久链接,选择“启用地址重写功能”,一般系统会自动检测。如果检测失败,手动勾选“使用 RewriteRule 方式”。
伪静态配置后常见问题与排障
打开页面报 404 或 500 错误
这是最常见的坑。八成原因是伪静态规则没生效,或者站点根目录权限不对。
检查 Nginx 配置是否加载了重写规则
nginx -T | grep try_files
检查 Apache 是否允许 .htaccess 覆盖
grep -r "AllowOverride" /etc/apache2/
如果 `AllowOverride` 是 `None`,改成 `All`,然后重启 Apache。
WordPress 固定链接设置后页面白屏
白屏一般是 PHP 内存不足或插件冲突。先关掉所有插件,再重新保存固定链接设置:
临时提升 PHP 内存限制,修改 wp-config.php
define('WP_MEMORY_LIMIT', '256M');
如果还是白屏,检查 Nginx 配置里的 `fastcgi_pass` 路径是否正确,很多新手在搬瓦工或 Vultr 的 VPS 上换了 PHP 版本就忘了改。
Typecho 伪静态后后台登录不了
这个问题出现频率很高,原因是伪静态规则把后台路由也重写了。解决办法是在 `.htaccess` 里加一条排除规则:
apache
RewriteCond %{REQUEST_URI} !^/admin/ # 排除后台目录
或者直接在 Typecho 后台把“启用地址重写功能”关掉,改用 PATHINFO 模式。
老鸟叮嘱:千万别忘了检查 404 页面
伪静态配置完成后,一定要手动访问一个不存在的 URL,比如 `yourdomain.com/test-404-page`。如果显示的是服务器默认的 404 页面(比如 Nginx 的 `404 Not Found`),说明伪静态没生效,爬虫会直接返回 404,SEO 直接完蛋。正确做法是:让 WordPress 或 Typecho 自带的 404 页面接管。WordPress 在主题的 `404.php` 里定义,Typecho 在 `usr/themes/你的主题/404.php`。
FAQ
Linux SSH 连不上怎么办?
先检查 VPS 防火墙是否放行了 22 端口,用 `ufw status` 或 `iptables -L` 查看。如果本地网络没问题,可能是 SSH 配置被改坏了,重启 `systemctl restart sshd` 试试。
VPS 防火墙端口放行后还是访问不了是什么原因?
很可能是云服务商的安全组没放行。比如阿里云、腾讯云的控制台里还有一层安全组规则,必须手动添加入站规则。另外,检查 Nginx 或 Apache 是否监听的是 0.0.0.0,而不是 127.0.0.1。
Linux 小白可以直接用 root 账号操作吗?
可以,但不建议。日常操作用普通用户加 `sudo`,万一手滑删了系统文件还能抢救。伪静态配置这类操作,建议在 root 下执行一次,然后切回普通用户。
BBR 开启后为什么速度没有明显提升?
BBR 主要优化高延迟链路,如果你的 VPS 本地延迟已经很低(比如 10ms 以内),效果不明显。另外,BBR 需要内核版本 4.9+,先跑 `uname -r` 确认。
WordPress 伪静态后,文章链接带中文怎么办?
在固定链接结构里不要用中文,用 `%post_id%` 或 `%postname%`。如果已经生成了中文 URL,用插件 WP Slug Translate 自动转拼音。
Typecho 伪静态后,分类页打不开是什么原因?
检查 `.htaccess` 里是否有 `RewriteCond %{REQUEST_FILENAME} !-d` 这条规则。如果没有,加上。另外,分类别名不要用中文,改成英文或拼音。
转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9442.html 商家投稿邮箱:zhujixuanblog@qq.com
