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

PHP+PHPMailer部署Hostinger:.htaccess致表单失效求助

解决.htaccess导致联系表单失效的问题

一、先用上正确的.htaccess配置

要实现默认加载index.php,同时不影响contact.php这类实际存在的文件,核心是让重写规则只作用于不存在的文件/目录,配置如下:

RewriteEngine On

# 仅当请求的文件或目录不存在时,才执行重写
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# 将其他请求转发到index.php
RewriteRule ^(.*)$ index.php [L]

之前的配置大概率没加前两行RewriteCond,导致所有请求(包括访问contact.php)都被强制转到index.php,表单自然提交失败。

二、检查表单提交路径

  • 确保表单的action属性用绝对路径,比如:
    <form action="/contact.php" method="POST">
    
    不要用相对路径action="contact.php",启用重写后URL结构变化可能导致相对路径解析错误,请求无法到达正确文件。
  • 如果是AJAX提交(对应你提到的custom.js),确认AJAX的请求URL也是绝对路径,比如:
    $.ajax({
      url: '/contact.php',
      method: 'POST',
      // 其他参数...
    });
    

三、清理多余的.htaccess文件

不要在public_html和子文件夹(比如publix)同时放置.htaccess,规则嵌套会导致冲突。只在网站根目录(比如public_html)保留一份配置即可。

四、快速调试定位问题

  • 直接在浏览器访问http://你的本地域名/contact.php,如果打不开,说明.htaccess规则拦截了这个请求,回去检查RewriteCond条件是否正确。
  • 在contact.php开头加一行代码,测试是否能接收到表单数据:
    var_dump($_POST); exit;
    
    提交表单后如果看不到POST数据,说明请求没到达contact.php,还是.htaccess的问题;如果能看到数据,再排查PHPMailer配置(但之前正常,这种概率极低)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:36:57