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

WordPress根目录下无法用.htaccess重写/jobs/子目录URL求助

解决WordPress根目录下/jobs/子目录的URL重写问题

调整根目录.htaccess规则

WordPress的默认规则会终止后续匹配,你需要调整规则顺序并修正参数映射逻辑,以下是可用的完整配置:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# 1. 301永久重定向:将旧动态URL转为友好URL
RewriteCond %{QUERY_STRING} ^q=([^&]+)&l=([^,]+),([^&]+)$
RewriteRule ^jobs/jobs\.php$ /jobs/%1/%3/%2/? [R=301,L,NC]

# 2. 正向重写:将友好URL映射到实际处理脚本
RewriteRule ^jobs/([^/]+)/([^/]+)/([^/]+)/?$ /jobs/jobs.php?q=$1&l=$2,$3 [NC,QSA,L]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php81” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php81 .php .php8 .phtml
</IfModule>

关键修正说明

  • 规则顺序:把跳转和重写规则放在WordPress默认规则之前,避免被WordPress的[L]标记终止后续匹配。
  • 参数映射修正:原配置中l=$3,+$2的顺序错误,友好URL的/state/city/对应原参数l=city,state,所以应改为l=$2,$3。
  • 添加[L]标记:给正向重写规则加[L],确保匹配后不再执行WordPress规则,避免干扰。
  • 子目录规则清理:删除/jobs/子目录下的.htaccess文件,根目录规则已覆盖需求,子目录规则会导致冲突。

测试注意事项

  • 清空浏览器缓存后再测试,301重定向会被浏览器缓存。
  • 确认/jobs/目录存在且jobs.php文件位置正确。
  • 确保服务器已启用mod_rewrite模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 09:50:37