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

.htaccess配置URL重写触发404 如何将带loc参数URL转为美化路径

问题原因

你当前只配置了「带参数的原始地址跳转至美化后地址」的外部跳转规则,没有配套配置「美化后地址内部映射到实际服务端处理路径」的规则,服务器找不到/customer/dashboard/对应的真实目录或文件,因此返回404错误。

修正后的完整.htaccess规则

(该规则适用于.htaccess放在网站根目录的场景)

RewriteEngine On

# 不带www跳转带www + HTTP跳转HTTPS
RewriteCond %{HTTP_HOST} ^everyoneknows\.com\.my [OR,NC] 
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.everyoneknows.com.my/$1 [R=301,NC,END]

# 规则1:原始带参数地址外部跳转至美化URL,清除query参数
RewriteCond %{QUERY_STRING} ^loc\=dashboard$ [NC]
RewriteRule ^customer/?$ https://www.everyoneknows.com.my/customer/dashboard/? [R=301,NC,END]

# 规则2:美化URL内部重写回实际处理地址,用户地址栏无变化
RewriteRule ^customer/dashboard/?$ /customer/?loc=dashboard [NC,END]

注意事项

  1. 如果你的.htaccess文件是放在/customer子目录下,需调整规则路径:
RewriteEngine On

# 不带www跳转带www + HTTP跳转HTTPS
RewriteCond %{HTTP_HOST} ^everyoneknows\.com\.my [OR,NC] 
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.everyoneknows.com.my/$1 [R=301,NC,END]

# 规则1:原始带参数地址外部跳转至美化URL
RewriteCond %{QUERY_STRING} ^loc\=dashboard$ [NC]
RewriteRule ^/?$ https://www.everyoneknows.com.my/customer/dashboard/? [R=301,NC,END]

# 规则2:美化URL内部重写回实际处理地址
RewriteRule ^dashboard/?$ /customer/?loc=dashboard [NC,END]
  1. 测试阶段建议将R=301临时改为R=302,避免浏览器缓存错误的301跳转规则,调试正常后再改回301。
  2. 确认服务器已开启mod_rewrite模块,且站点配置的AllowOverride参数设置为All,保证.htaccess文件可以生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:15:08