【问题标题】:Mail.php doesn't work with .htaccessMail.php 不适用于 .htaccess
【发布时间】:2014-09-30 20:40:42
【问题描述】:

如果我将这个 .htaccess 代码放入其中,我的电子邮件 php 文件将无法正常工作

## Prevent directory listings
Options All -Indexes

Options +FollowSymLinks -MultiViews


RewriteEngine On
RewriteBase /



RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]


RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

将带有表单的html文件发送到php文件的功能不起作用。 该表单与 post 一起使用,然后在我拥有的 php 文件中使用。

<?php
if(!isset($_POST["submit"]))
{
echo "error; you need to submit the form!";
}
$name = $_POST["name"];
$visitor_email = $_POST["visitor_email"];
$message = $_POST["message"];

此代码不再有效。因为用 .htaccess 重写了 url,所以我访问了它,

  • 我该如何解决这个问题,以便我的 php 脚本可以运行
  • 并且文件目录被保护不被查看
  • 而且 php 扩展是不可见的。

感谢阅读

【问题讨论】:

  • “不工作”是什么意思?您正在通过_POST 发送数据,因此 url 中没有参数。你能通过 url 访问这个文件吗?
  • %{REQUEST_FILENAME} 没有文件扩展名吗?
  • 当我从根目录中删除我的 htaccess 时,我可以使用邮件文件,但是当我将它放入代码时不起作用。
  • 我不擅长使用 htaccess,所以很抱歉我不知道这些 insanebits
  • 在我自己的系统上试用过,按预期工作

标签: php regex apache .htaccess mod-rewrite


【解决方案1】:

RewriteBase 行的下方插入这一行,以忽略您对 POST 请求的重写规则:

RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^ - [L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-19
    • 2015-11-10
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多