本文详细讲解如何为WordPress配置Nginx的rewrite规则(wordpress.conf),涵盖基础语法、常见场景配置、性能优化技巧及错误排查方法,帮助管理员实现永久链接、多站点等功能的URL重定向。
一、WordPress.conf重写规则的作用
Nginx的rewrite规则是WordPress实现SEO友好URL的核心配置,主要功能包括:
- 将动态URL转换为静态永久链接
- 实现多站点网络的子目录/子域名路由
- 处理插件/主题的特殊重定向需求
- 优化带参数URL的访问效率
二、基础配置模板
以下是标准WordPress单站点的Nginx配置模板:
location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
三、进阶配置场景
1. 多站点子目录模式
rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
if (!-e $request_filename) {
rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).) /$2 last;
rewrite ^/([_0-9a-zA-Z-]+/)?(..php)$ /$2 last;
}
2. 强制HTTPS重定向
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
3. 媒体文件缓存优化
location ~ .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
add_header Cache-Control "public";
}
四、调试与验证方法
- 语法检查:
nginx -t
- 重写日志:在server块添加
rewrite_log on;
- 测试工具:使用
curl -I
检查响应头
五、常见问题解决
问题现象 | 解决方案 |
---|---|
404页面错误 | 检查try_files语句顺序 |
循环重定向 | 移除重复的HTTPS规则 |
CSS/JS加载失败 | 添加静态文件location规则 |
配置完成后建议执行service nginx reload
使配置生效。
评论