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

.htaccess多语言目录URL重写问题求助

解决多语言子目录的URL重写问题

嗨,这个问题很典型——你的现有重写规则只覆盖了根目录的请求场景,没考虑带语言前缀的子目录。咱们调整一下.htaccess规则,就能同时支持根目录和fr/tr/ar/en这些语言子目录的URL重写需求了:

RewriteEngine On

# 处理带语言前缀的请求(比如 /fr/home、/tr/home)
RewriteRule ^([a-z]{2})/home$ $1/index.php?do=home [L,NC]

# 保留根目录原有的重写规则(比如 /home)
RewriteRule ^home$ index.php?do=home [L]

规则解释:

  • 第一条规则里的^([a-z]{2})/home$会匹配两个小写字母开头+home的路径(比如fr/home、ar/home),([a-z]{2})是捕获组,把语言代码存起来,后面用$1调用,转发到对应子目录的index.php?do=home。
  • [NC]标记是忽略大小写(如果你的语言代码可能有大写的话可以加上,不需要也可以去掉),[L]表示这是最后一条匹配规则,避免后续规则干扰。
  • 第二条规则保持你原来的根目录功能,处理/home这类请求。

更精准的优化(可选):

如果你的语言目录只有fr/tr/ar/en这几个固定值,建议把正则写得更明确,避免匹配其他无关的两个字母目录:

RewriteEngine On

# 只匹配指定的语言目录
RewriteRule ^(fr|tr|ar|en)/home$ $1/index.php?do=home [L]

# 根目录规则
RewriteRule ^home$ index.php?do=home [L]

最后确认一下:每个语言子目录(fr/tr/ar/en)里确实存在index.php文件,而且你的服务器配置允许.htaccess生效(比如Apache的AllowOverride All已经开启)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:11:39