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

本地正常的.htaccess规则在GoDaddy主机失效,访问site.com/Downloads报404

问题:GoDaddy主机上.htaccess重写规则失效导致404错误

我的.htaccess配置在本地XAMPP环境中运行正常,配置内容如下:

RewriteEngine on
RewriteBase /
Options +FollowSymLinks
Options -MultiViews
Options -Indexes
DirectorySlash Off

RewriteCond %{HTTP_USER_AGENT} libwww-perl.* 
RewriteRule .* ? [F,L]

RewriteCond %{DOCUMENT_ROOT}/templates/$1\.tpl -f
RewriteRule ^([\w\-.\s]+)$ index.php?page=$1 [QSA,NC,L]

ErrorDocument 404 /sources/404.php

但将该配置部署到GoDaddy主机后,访问site.com/Downloads时会出现404错误,本地环境无此问题。请问哪里配置出错了?


解决思路与修正方案

  • 排查文件名大小写问题:本地XAMPP基于Windows系统,文件名不区分大小写;但GoDaddy主机是Linux系统,大小写严格敏感。如果你的模板文件是downloads.tpl(小写),而请求的是Downloads(首字母大写),就会导致RewriteCond判断文件不存在,无法触发重写规则,直接返回404。务必确保请求路径和模板文件名的大小写完全匹配。

  • 调整%{DOCUMENT_ROOT}的路径判断:GoDaddy主机的%{DOCUMENT_ROOT}实际路径可能和本地XAMPP不一致,导致模板文件存在性判断失效。可以将条件中的绝对路径改为相对路径测试:

    RewriteCond ./templates/$1\.tpl -f
    

    或者改用%{REQUEST_URI}关联判断,避免依赖DOCUMENT_ROOT的差异:

    RewriteCond %{REQUEST_URI} ^/([\w\-.\s]+)$
    RewriteCond %{DOCUMENT_ROOT}/templates/%1\.tpl -f
    RewriteRule ^ index.php?page=%1 [QSA,NC,L]
    
  • 确认RewriteEngine与主机配置:部分GoDaddy主机默认未启用mod_rewrite模块,需要登录主机控制面板,找到“URL重写”或“Apache模块”选项,确认开启了重写功能;也可以联系主机客服核实模块状态。

  • 测试RewriteBase的兼容性:GoDaddy的虚拟主机可能存在隐藏的子目录结构,即使文件放在根目录,RewriteBase /可能无法正确识别。尝试注释掉RewriteBase /这一行,让Apache自动适配当前目录路径。

  • 检查DirectorySlash的冲突:GoDaddy的Apache全局配置可能与DirectorySlash Off存在冲突,尝试注释掉这一行,访问时手动保证路径末尾无斜杠,看是否能触发重写规则。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:11:29