You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Nginx将WordPress博客/blog/下.html后缀文章重定向到/blog/es/子目录

解决方案

方案1:Apache 服务器(.htaccess配置)

将以下规则添加到/blog目录下的.htaccess文件顶部,优先级要高于WordPress默认的重定向规则:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
# 排除已带有语言前缀的路径,避免循环重定向
RewriteCond %{REQUEST_URI} !^/blog/(es|en|fr)/ [NC]
# 仅匹配/blog目录下直接以.html为后缀的请求
RewriteRule ^([^/]+\.html)$ /blog/es/$1 [L,R=301,NC]
</IfModule>

测试阶段可以将R=301改为R=302,避免浏览器缓存错误的重定向规则,确认生效后再改回301

方案2:Nginx 服务器配置

将以下规则添加到站点Nginx配置的server块中,放在其他location规则之前:

location ^~ /blog/ {
    # 排除已带有语言前缀的路径
    if ($request_uri !~* ^/blog/(es|en|fr)/) {
        # 匹配.html后缀的请求并重定向
        rewrite ^/blog/([^/]+\.html)$ /blog/es/$1 permanent;
    }
    # 原有WordPress、Polylang相关配置保持不变即可
}

配置修改完成后执行nginx -s reload重载配置生效。

方案3:WordPress插件配置(无需修改服务器文件)

你可以使用Redirection等WordPress重定向插件实现需求,添加规则如下:

  • 源URL匹配模式:^/blog/([^/]+\.html)$(选择正则匹配)
  • 目标URL:/blog/es/$1
  • 额外匹配条件:排除请求路径包含/blog/es/、/blog/en/、/blog/fr/的情况
  • 重定向类型选择301永久重定向

验证注意事项

配置完成后清理浏览器缓存再进行测试,确认:

  • 原/blog/xxx.html路径可以正常跳转到/blog/es/xxx.html
  • 多语言前缀路径、后台管理路径访问不受影响
  • 非.html后缀的路径不会被误重定向

内容的提问来源于stack exchange,提问作者PauGNU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 01:42:04