使用 .htaccess 正确配置 WordPress 子目录重定向与路径保留

使用 .htaccess 正确配置 WordPress 子目录重定向与路径保留

本文详细阐述了如何通过修改 `.htaccess` 文件,将主域名流量精确重定向至 wordpress 子目录,并确保原始 url 路径的完整保留。教程涵盖了主域名根目录和子目录 `.htaccess` 文件的关键配置调整,特别是 `rewriterule` 中捕获组 `$1` 的应用,以及子目录 `rewritebase` 和 `rewriterule` 的正确设置,旨在解决重定向后路径丢失的问题。

理解重定向与路径保留的核心问题

在将网站从主域名(例如 example.com)重定向到其子目录(例如 example.com/fr)时,常见的挑战是确保所有子路径(如 example.com/path/to/page)在重定向后能够正确地映射到 example.com/fr/path/to/page,而不是简单地全部重定向到 example.com/fr/。这通常是由于 .htaccess 文件中的 RewriteRule 配置不当,未能正确捕获并传递原始请求的路径信息所致。此外,WordPress 在子目录中运行时,其内部重写规则也需要相应的调整。

主域名根目录 .htaccess 配置

主域名根目录下的 .htaccess 文件负责处理所有进入主域名的请求,并将其重定向到目标子目录。关键在于 RewriteRule 的设置,它必须能够捕获原始请求中的完整路径,并将其附加到新的重定向 URL 中。

原始配置(可能导致路径丢失):如果您的主域名 .htaccess 文件中的重定向规则类似于以下形式,它将导致所有请求都被重定向到 https://example.com/fr/,而丢失原始路径:

RewriteEngine onRewriteCond %{HTTP_HOST} ^example.com [NC,OR]RewriteCond %{HTTP_HOST} ^www.example.com [NC]RewriteRule ^(.*)$ https://example.com/fr/ [L,R=301,NC]

上述规则中,重定向目标 https://example.com/fr/ 缺少了对原始请求路径的引用,因此所有子路径都将被丢弃。

正确的配置方法:为了保留路径,我们需要在 RewriteRule 中使用正则表达式的捕获组。^(.*)$ 会捕获请求 URI 的所有内容(除了域名部分),并将其存储在 $1 变量中。然后,我们可以在重定向目标 URL 中引用这个 $1,从而将原始路径附加到子目录 URL 之后。

请将主域名根目录下的 .htaccess 文件中的相关 RewriteRule 修改为:

RewriteEngine on# 检查请求的主机是否为 example.com 或 www.example.comRewriteCond %{HTTP_HOST} ^example.com [NC,OR]RewriteCond %{HTTP_HOST} ^www.example.com [NC]# 将所有请求(包括路径)301重定向到 https://example.com/fr/,并保留原始路径RewriteRule ^(.*)$ https://example.com/fr/$1 [L,R=301,NC]# 以下是标准的WordPress规则,请确保其保持不变,除非您有特殊需求# BEGIN WordPressRewriteEngine OnRewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]RewriteBase /RewriteRule ^index.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]# END WordPress

解释:

RewriteRule ^(.*)$ https://example.com/fr/$1 [L,R=301,NC]:^(.*)$:这是一个正则表达式,^ 匹配行的开始,.* 匹配任意字符零次或多次,$ 匹配行的结束。括号 () 创建了一个捕获组,它会捕获 .* 匹配到的所有内容,即原始请求的路径。$1:引用了第一个捕获组匹配到的内容。通过将其附加到重定向目标 URL,确保原始路径得以保留。L (Last):表示如果此规则匹配成功,则停止处理后续的重写规则。R=301 (Redirect=301):表示执行一个永久性(301)外部重定向。NC (No Case):表示不区分大小写。

通过此修改,例如 example.com/about 将被正确重定向到 https://example.com/fr/about。

子目录 .htaccess 配置

当 WordPress 安装在子目录(例如 /fr/)中时,其自身的 .htaccess 文件也需要进行调整,以确保 WordPress 能够正确解析其内部链接和固定链接结构。最主要的变化是 RewriteBase 指令,它需要反映 WordPress 实际所在的子目录路径。

原始子目录配置(可能导致问题):标准的 WordPress .htaccess 规则在根目录下运行时是有效的,但在子目录中,RewriteBase / 和 RewriteRule . /index.php [L] 会导致 WordPress 无法正确找到其资源或处理请求。

# BEGIN WordPressRewriteEngine OnRewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]RewriteBase /RewriteRule ^index.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]# END WordPress

正确的配置方法:在 /fr/ 子目录下的 .htaccess 文件中,您需要修改 RewriteBase 和主 RewriteRule,使其指向 /fr/ 路径。

请将 /fr/ 目录下的 .htaccess 文件修改为:

# BEGIN WordPressRewriteEngine OnRewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]# 将 RewriteBase 修改为子目录的路径RewriteBase /fr/RewriteRule ^index.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d# 将主 RewriteRule 的目标路径修改为子目录的 index.phpRewriteRule . /fr/index.php [L]# END WordPress

解释:

RewriteBase /fr/:明确告诉 Apache,所有后续的重写规则都应该相对于 /fr/ 路径来解析。这是确保 WordPress 在子目录中正确处理 URL 的关键。RewriteRule . /fr/index.php [L]:确保所有不直接对应文件或目录的请求都被内部重写到 /fr/index.php,由 WordPress 进一步处理。

注意事项

备份文件: 在进行任何 .htaccess 文件修改之前,务必备份原始文件。错误的配置可能导致网站无法访问。清除缓存: 301 重定向会被浏览器和 CDN 缓存。修改后,请务必清除浏览器缓存、CDN 缓存(如果使用)以及服务器端缓存(如 Nginx FastCGI 缓存),以确保新的重定向规则生效。可以使用匿名模式或不同的浏览器进行测试。WordPress 固定链接: 在完成 .htaccess 配置后,登录 WordPress 后台,导航到“设置” -> “固定链接”,无需进行任何修改,直接点击“保存更改”按钮。这会刷新 WordPress 的重写规则,确保其与新的环境兼容。测试: 彻底测试网站的各个页面和功能,确保所有链接都正确重定向并正常工作,特别是深层链接和静态资源。优先级: 服务器通常会优先处理根目录的 .htaccess 文件,然后是子目录的。了解这个处理顺序有助于调试。

总结

通过对主域名根目录和 WordPress 子目录中的 .htaccess 文件进行精确配置,我们可以实现无缝且路径完整的重定向。关键在于主目录 RewriteRule 中对 $1 捕获组的正确使用,以及子目录 RewriteBase 和 WordPress 核心 RewriteRule 的相应调整。遵循这些步骤并进行充分测试,将确保您的 WordPress 网站在子目录中稳定运行,并提供一致的用户体验。

以上就是使用 .htaccess 正确配置 WordPress 子目录重定向与路径保留的详细内容,更多请关注php中文网其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1338693.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
PHP 4 函数中引用参数的默认值限制与解决方案
上一篇 2025年12月13日 02:17:17
如何在Symfony中配置GraphQL端点并与前端集成
下一篇 2025年12月13日 02:17:33

相关推荐

  • 显示器HDR效果的真实表现取决于哪些关键因素?

    HDR效果的好坏取决于峰值亮度、局部调光、色域覆盖和色彩深度的协同作用,其中局部调光与峰值亮度同等重要,能显著提升对比度和画面层次,而HDR400因亮度不足且常缺乏局部调光,实际体验有限,建议选择DisplayHDR 600及以上标准,并确保内容源、连接接口(如HDMI 2.0或DP 1.4)及系统…

    2026年9月28日
    000
  • 牧场物语风之繁华集市自然精灵系统指南 自然精灵功能及位置

    牧场物语风之繁华集市自然精灵系统指南 自然精灵功能及位置牧场物语风之繁华集市自然精灵系统指南 自然精灵功能及位置牧场物语风之繁华集市自然精灵系统指南 自然精灵功能及位置牧场物语风之繁华集市自然精灵系统指南 自然精灵功能及位置

    《牧场物语 风之集市》中的自然精灵系统是维系农场生态平衡与促进作物成长的重要机制。在游戏第一年春季第13日上午,该系统将自动解锁,并同步开启“欢乐能量”玩法。通过“助威小队”功能,自然精灵可在集市日协助提升商品的销售表现和品质,助力玩家获得更高收益。 牧场物语风之繁华集市自然精灵系统详解 1、自然精…

    2026年9月28日 • 用户投稿
    000
  • 乌鲁木齐银行定向采购 Oracle、IBM、Redhat

    2022年2月18日,乌鲁木齐银行发布《正版oracle软件采购项目》公开询价公告,控制价 283 万元。 采购内容:主要目标为以数量授权模式采购,采购Oracle数据库6C,Oracle weblogic 4C,Oracle集群2C,Oracle ADG 2C。 2022年3月1日发布成交公告,新…

    2026年9月28日
    000
  • MBTI测试免费链接入口_ MBTI免费测试网站在线地址

    MBTI测试免费链接入口_ MBTI免费测试网站在线地址MBTI测试免费链接入口_ MBTI免费测试网站在线地址MBTI测试免费链接入口_ MBTI免费测试网站在线地址MBTI测试免费链接入口_ MBTI免费测试网站在线地址

    MBTI测试免费链接入口包括www.16personalities.com和www.16mbti.cn,前者基于荣格理论提供16种人格类型分析,含职业建议;后者支持多次测试、生成多维度报告,具社交分享功能,界面简洁适配多设备,测试约12分钟完成。 MBTI测试免费链接入口在哪里?这是不少网友都关注的…

    2026年9月28日 • 用户投稿
    000
  • 如何用豆包AI生成Python环境配置代码

    如何用豆包AI生成Python环境配置代码如何用豆包AI生成Python环境配置代码如何用豆包AI生成Python环境配置代码如何用豆包AI生成Python环境配置代码

    豆包ai可辅助生成python环境配置代码。1. 首先明确项目需求,如python版本、依赖库和虚拟环境类型;2. 向豆包ai输入具体提示词,获取创建venv和requirements.txt的命令;3. 如需复杂配置,可要求生成开发与生产环境分离的依赖文件;4. 注意版本控制、输出验证及通过多轮交…

    2026年9月28日 • 用户投稿
    100
  • 视频号私信如何改成个人私信?视频号怎么私信给作者

    视频号私信如何改成个人私信?视频号怎么私信给作者视频号私信如何改成个人私信?视频号怎么私信给作者视频号私信如何改成个人私信?视频号怎么私信给作者视频号私信如何改成个人私信?视频号怎么私信给作者

    在这个信息爆炸的时代,我们每个人都希望能拥有一个属于自己的小天地,与他人分享喜怒哀乐,同时保护自己的隐私。而微信视频号私信功能的出现,无疑为我们提供了一个绝佳的沟通平台。但是,有些朋友可能发现,自己无法将视频号私信改成个人私信。别担心,今天就来教大家如何轻松切换隐私模式,让你的沟通更加私密和安全。 …

    2026年9月28日 • 用户投稿
    100
  • sublime怎么快速注释和取消注释代码_Sublime代码块注释与取消注释的快捷操作

    sublime怎么快速注释和取消注释代码_Sublime代码块注释与取消注释的快捷操作sublime怎么快速注释和取消注释代码_Sublime代码块注释与取消注释的快捷操作sublime怎么快速注释和取消注释代码_Sublime代码块注释与取消注释的快捷操作sublime怎么快速注释和取消注释代码_Sublime代码块注释与取消注释的快捷操作

    Sublime Text中行注释快捷键为Ctrl + /(Windows/Linux)或Cmd + /(macOS),用于单行或多行代码的快速注释与取消;块注释快捷键为Ctrl + Shift + / 或Cmd + Shift + /,可将选中代码块用语言特定符号包裹。 在Sublime Text中…

    2026年9月28日 • 用户投稿
    100
  • 如何通过服务禁用减少系统启动时间?

    如何通过服务禁用减少系统启动时间?如何通过服务禁用减少系统启动时间?如何通过服务禁用减少系统启动时间?如何通过服务禁用减少系统启动时间?

    精简开机自启动服务可显著缩短系统启动时间。通过禁用非必要的第三方或冗余服务,减轻系统引导负担,释放CPU、内存等资源,提升整体响应速度与电池续航。在Windows中使用services.msc或任务管理器管理服务与启动项,Linux下则用systemctl命令控制服务启停。操作时应从第三方软件入手,…

    2026年9月28日 • 用户投稿
    300
  • 使用 Java 泛型实现 CSV 到对象的转换器

    使用 Java 泛型实现 CSV 到对象的转换器使用 Java 泛型实现 CSV 到对象的转换器使用 Java 泛型实现 CSV 到对象的转换器使用 Java 泛型实现 CSV 到对象的转换器

    本文将介绍如何使用 Java 泛型创建一个通用的 CSV 到对象的转换器。通过泛型,我们可以避免为每种需要转换的 Java 类编写重复的代码,从而提高代码的可重用性和可维护性。文章将提供代码示例,并讨论一些关于代码设计和现有 CSV 解析库的建议。 泛型 CSV 工具类 使用 Java 泛型可以创建…

    2026年9月28日 • 用户投稿
    100
  • sublime怎么显示函数列表_Sublime Text快速跳转到函数或符号定义

    sublime怎么显示函数列表_Sublime Text快速跳转到函数或符号定义sublime怎么显示函数列表_Sublime Text快速跳转到函数或符号定义sublime怎么显示函数列表_Sublime Text快速跳转到函数或符号定义sublime怎么显示函数列表_Sublime Text快速跳转到函数或符号定义

    使用Ctrl+R或Cmd+R调用内置符号跳转功能,可快速定位当前文件的函数、类等定义;通过安装CTags、Symbol Browser或SublimeCodeIntel等插件,能实现跨文件跳转与更精准识别;配合LSP插件启用Goto Definition(F12),可获得类似IDE的智能跳转体验,显…

    2026年9月28日 • 用户投稿
    400
  • firefox浏览器如何导出密码 Firefox浏览器密码数据导出备份指南

    firefox浏览器如何导出密码 Firefox浏览器密码数据导出备份指南firefox浏览器如何导出密码 Firefox浏览器密码数据导出备份指南firefox浏览器如何导出密码 Firefox浏览器密码数据导出备份指南firefox浏览器如何导出密码 Firefox浏览器密码数据导出备份指南

    首先通过Firefox账户同步功能可将密码加密上传至云端,登录账户并开启密码同步即可在多设备间自动同步;其次在about:logins页面可手动导出登录数据为未加密CSV文件用于本地备份或迁移;最后高级用户可通过访问配置文件目录提取logins.json和key4.db文件实现对密码数据库的直接备份…

    2026年9月28日 • 用户投稿
    100
  • 抖音流量来源其他是什么?抖音流量神器软件

    抖音流量来源其他是什么?抖音流量神器软件抖音流量来源其他是什么?抖音流量神器软件抖音流量来源其他是什么?抖音流量神器软件抖音流量来源其他是什么?抖音流量神器软件

    抖音,作为当下最火热的短视频平台之一,自上线以来便迅速席卷全国,成为用户娱乐、创作者变现和品牌营销的重要阵地。那么,抖音的流量究竟从何而来?除了我们熟知的内容创作,还有哪些关键因素在推动流量增长?今天就来深入解析抖音背后的流量密码。 一、优质内容:流量的核心驱动力 内容始终是抖音生态中最根本的流量来…

    2026年9月28日 • 用户投稿
    100
  • 为什么高负载下CPU频率会自动降低?

    为什么高负载下CPU频率会自动降低?为什么高负载下CPU频率会自动降低?为什么高负载下CPU频率会自动降低?为什么高负载下CPU频率会自动降低?

    CPU在高负载下频率降低是因温度或功耗过高触发的自我保护机制,主要由散热不足或功耗限制导致。当CPU温度接近Tj Max时,电源管理单元会启动热节流,通过降频降温;同样,若瞬时功耗超过PL1/PL2阈值,也会触发功耗墙降频。此机制虽保障硬件安全,但会导致性能下降,表现为游戏卡顿、渲染变慢等。可通过H…

    2026年9月28日 • 用户投稿
    300
  • 如何获取本机网络IP—详细指南教你IP地址查看过程

    如何获取本机网络IP—详细指南教你IP地址查看过程如何获取本机网络IP—详细指南教你IP地址查看过程如何获取本机网络IP—详细指南教你IP地址查看过程如何获取本机网络IP—详细指南教你IP地址查看过程

    首先明确如何查电脑IP地址:Windows使用ipconfig命令或设置界面,Mac在系统设置网络中查看,手机在Wi-Fi详情页查找,所获为局域网IP;若需公网IP,可访问ip.cn等网站获取。 想知道怎么查自己电脑的网络IP地址?其实方法很简单,不管你是用Windows、Mac,还是手机设备,都能…

    2026年9月28日 • 用户投稿
    100
  • win11自带的视频编辑器在哪里 win11自带视频编辑器打开与使用方法

    win11自带的视频编辑器在哪里 win11自带视频编辑器打开与使用方法win11自带的视频编辑器在哪里 win11自带视频编辑器打开与使用方法win11自带的视频编辑器在哪里 win11自带视频编辑器打开与使用方法win11自带的视频编辑器在哪里 win11自带视频编辑器打开与使用方法

    Windows 11用户可通过五种方式使用Clipchamp编辑视频:1. 从开始菜单点击应用启动;2. 使用Win+S搜索并打开;3. 在“照片”应用中选择视频后创建项目跳转;4. 右键视频文件选择“使用Clipchamp编辑”;5. 通过浏览器访问官网在线登录使用。 如果您需要对视频进行剪辑、添…

    2026年9月28日 • 用户投稿
    1000
  • windows怎么设置自动锁定 windows自动锁定屏幕的设置方法

    1、通过电源与睡眠设置,可让设备在闲置后进入睡眠并自动锁屏;2、使用组策略编辑器能配置用户空闲超时后自动锁定计算机;3、家庭版系统可通过修改注册表实现相同功能;4、创建计划任务可定时检测系统空闲状态并在达到阈值后执行锁屏命令。 如果您希望在计算机闲置一段时间后自动锁定屏幕以保护隐私和安全,可以通过调…

    2026年9月28日
    200
  • 怎么用豆包AI帮我写Redis操作代码 Redis操作代码的AI编写技巧

    怎么用豆包AI帮我写Redis操作代码 Redis操作代码的AI编写技巧怎么用豆包AI帮我写Redis操作代码 Redis操作代码的AI编写技巧怎么用豆包AI帮我写Redis操作代码 Redis操作代码的AI编写技巧怎么用豆包AI帮我写Redis操作代码 Redis操作代码的AI编写技巧

    明确提问和引导是用豆包ai写好redis操作代码的关键。1. 先说明使用的编程语言和redis客户端库,如python的redis-py、node.js的ioredis或go的go-redis;2. 指定具体操作类型,如字符串、哈希、列表等,并说明是读还是写操作;3. 结合业务场景提问,例如缓存、限…

    2026年9月28日 • 用户投稿
    600
  • SQL注入防范策略解析

    登录界面如下所示: 请输入用户名: 用户名输入框,密码字段命名为 pass,类型设置为密码框。 点击登录按钮执行验证操作。 后端处理文件(check.php)的核心代码逻辑大致如下: 若查询结果为空,则判定为验证失败,需进行异常处理。 提示:登录失败,请核对所填信息。 } 统计数据库返回的结果行数。…

    2026年9月28日
    100
  • firefox浏览器为什么打不开某些网站 Firefox浏览器特定网站访问失败排查方案

    firefox浏览器为什么打不开某些网站 Firefox浏览器特定网站访问失败排查方案firefox浏览器为什么打不开某些网站 Firefox浏览器特定网站访问失败排查方案firefox浏览器为什么打不开某些网站 Firefox浏览器特定网站访问失败排查方案firefox浏览器为什么打不开某些网站 Firefox浏览器特定网站访问失败排查方案

    清除缓存和Cookie;2. 确保JavaScript启用;3. 禁用硬件加速;4. 刷新Firefox;5. 修改DNS为8.8.8.8/8.8.4.4,可解决Firefox无法加载网页问题。 如果您尝试访问某个网站,但Firefox浏览器无法加载页面或显示异常,则可能是由于网络设置、浏览器配置或…

    2026年9月28日 • 用户投稿
    100
  • 360极速浏览器如何完全清除浏览数据_彻底清理缓存历史记录等上网痕迹

    360极速浏览器如何完全清除浏览数据_彻底清理缓存历史记录等上网痕迹360极速浏览器如何完全清除浏览数据_彻底清理缓存历史记录等上网痕迹360极速浏览器如何完全清除浏览数据_彻底清理缓存历史记录等上网痕迹360极速浏览器如何完全清除浏览数据_彻底清理缓存历史记录等上网痕迹

    首先通过设置菜单清除浏览数据,进入“更多工具”选择“清除上网痕迹”,勾选历史记录、缓存、Cookie等项后立即清除;其次手动删除用户数据文件夹,关闭浏览器后在%localappdata%360ChromeChromeUser Data路径下重命名或删除Default文件夹;再使用CCleaner等系…

    2026年9月28日 • 用户投稿
    100

发表回复

登录后才能评论
关注微信