php - Mail.php 不适用于 .htaccess

标签 php regex apache .htaccess mod-rewrite

我遇到一个问题,如果我将此 .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 扩展是不可见的。

感谢您的阅读

最佳答案

RewriteBase 行下方插入此行,以忽略 POST 请求的重写规则:

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

关于php - Mail.php 不适用于 .htaccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25185340/

相关文章:

java - 使用 Apache James 实现客户端身份验证

php - 如何在 OS X 上使用 PHP7 在 MAMP 上安装 mongodb php 驱动程序?

javascript - 检查多个输入是否具有相同值的最佳方法

php - 如何使用数据库中的数据创建 LineString geoJson?

python - 如何在 Pandas 的字符串模式后提取数字

apache - Tomcat、Mod_rewrite、Mod_proxy : how do I keep the original URI path in a proxied request?

javascript - 动态表ajax替换页面中所有行/表单中的元素

c - C 中的 POSIX 正则表达式不起作用

php - 将 RTF 格式转换为纯文本格式

c++ - 服务器监听本地主机:8080 can Apache still listen to port 80?