本地主机上的 404 错误
404 error on localhost
我正在尝试使用一些 ajax 来发送一些电子邮件。我在使用冷聚变之前就已经这样做了,没有问题。
我 运行 的原因是 localhost 没有找到明显位于目录中的文件。事实上,该文件位于与 index.php 相同的目录中,这是没有问题的。但是,它在我的 send.php 文件中显示 404 错误文件未找到 。我什至尝试通过地址栏直接转到该页面,但找不到该文件。 如果我输入文件路径 ie - file:///C://xampp/htdocs/3H-Web-Wlements/send.php 它将显示代码。
然而,当我上传到我的活动服务器时没有问题。
我在这里错过了什么?
这是日志中的错误:
[Wed Sep 23 19:33:34.295785 2015] [:error] [pid 2552:tid 1752] [client ::1:63670] script 'C:/xampp/htdocs/index.php' not found or unable to stat, referer: http://localhost/3H-Web-Wlements/
我是否配置错误甚至未配置?
就像我说的。它适用于我的活动服务器,但仅在本地主机上失败。
我的send.php代码
<?php
/*
**************************************
* *
* Config here *
* *
**************************************
*/
$to = 'xxx@gmail.com';
$subject = 'Message from website';
$siteName = "xxx";
/*
*************************************************************
* *
* Don't Change below code, if you don't know php. *
* *
*************************************************************
*/
$name = $_POST['contactName'];
$mail = $_POST['contactEmail'];
$subject = $_POST['contactWebsite'];
$note = $_POST['contactMessage'];
$ipAdd = $_POST['contactIp'];
if (isset($name) && isset($mail) && isset($note)) {
// $mailSub = '[Contact] [' . $siteName . '] '.$subject;
$body = 'Sender Name: ' . $name . "\n\n";
$body .= 'Sender IP: ' . $ipAdd . "\n\n";
$body .= 'Sender Mail: ' . $mail . "\n\n";
$body .= 'Website: ' . $subject . "\n\n";
$body .= 'Message: ' . $note;
$message = $body;
$header = 'From: ' . $mail . "\r\n";
$header .= 'Reply-To: ' . $mail . "\r\n";
$header .= 'X-Mailer: PHP/' . phpversion();
// mail($to, $mailSub, $body, $header);
mail($to, $subject, $message, $headers);
}else{
echo '0';
}
?>
在 php 上发送电子邮件功能比在本地主机上测试活动服务器要好得多,因为本地主机需要配置以支持电子邮件功能,而活动服务器已经为此设置。我也体验过。
根据您提供的错误消息以及您在本地主机上导航到的 URL 的模糊性,我怀疑您的问题的根本原因是在您的开发服务器上设置了两个不同的文档根目录和生产服务器。
如果我是对的,这可以通过将开发服务器的文档根目录从 C://xampp/htdocs/
更改为 C://xampp/htdocs/3H-Web-Wlements/
来解决。使用此设置,服务器将尝试从 3H-Web-Wlements/
而不是 htdocs/
服务 index.php
。
可以在通常称为 httpd.conf
的 Apache 配置文件中设置文档根设置。如果您使用的是 XAMPP 或 MAMP 之类的开发设置,您可能在控制面板中有一个按钮可以访问 httpd.conf。
更改后的设置应如下所示:
DocumentRoot C://xampp/htdocs/3H-Web-Wlements/
进行更改后,您需要重新启动网络服务器才能使更改生效。
我正在尝试使用一些 ajax 来发送一些电子邮件。我在使用冷聚变之前就已经这样做了,没有问题。
我 运行 的原因是 localhost 没有找到明显位于目录中的文件。事实上,该文件位于与 index.php 相同的目录中,这是没有问题的。但是,它在我的 send.php 文件中显示 404 错误文件未找到 。我什至尝试通过地址栏直接转到该页面,但找不到该文件。 如果我输入文件路径 ie - file:///C://xampp/htdocs/3H-Web-Wlements/send.php 它将显示代码。
然而,当我上传到我的活动服务器时没有问题。
我在这里错过了什么?
这是日志中的错误: [Wed Sep 23 19:33:34.295785 2015] [:error] [pid 2552:tid 1752] [client ::1:63670] script 'C:/xampp/htdocs/index.php' not found or unable to stat, referer: http://localhost/3H-Web-Wlements/
我是否配置错误甚至未配置?
就像我说的。它适用于我的活动服务器,但仅在本地主机上失败。
我的send.php代码
<?php
/*
**************************************
* *
* Config here *
* *
**************************************
*/
$to = 'xxx@gmail.com';
$subject = 'Message from website';
$siteName = "xxx";
/*
*************************************************************
* *
* Don't Change below code, if you don't know php. *
* *
*************************************************************
*/
$name = $_POST['contactName'];
$mail = $_POST['contactEmail'];
$subject = $_POST['contactWebsite'];
$note = $_POST['contactMessage'];
$ipAdd = $_POST['contactIp'];
if (isset($name) && isset($mail) && isset($note)) {
// $mailSub = '[Contact] [' . $siteName . '] '.$subject;
$body = 'Sender Name: ' . $name . "\n\n";
$body .= 'Sender IP: ' . $ipAdd . "\n\n";
$body .= 'Sender Mail: ' . $mail . "\n\n";
$body .= 'Website: ' . $subject . "\n\n";
$body .= 'Message: ' . $note;
$message = $body;
$header = 'From: ' . $mail . "\r\n";
$header .= 'Reply-To: ' . $mail . "\r\n";
$header .= 'X-Mailer: PHP/' . phpversion();
// mail($to, $mailSub, $body, $header);
mail($to, $subject, $message, $headers);
}else{
echo '0';
}
?>
在 php 上发送电子邮件功能比在本地主机上测试活动服务器要好得多,因为本地主机需要配置以支持电子邮件功能,而活动服务器已经为此设置。我也体验过。
根据您提供的错误消息以及您在本地主机上导航到的 URL 的模糊性,我怀疑您的问题的根本原因是在您的开发服务器上设置了两个不同的文档根目录和生产服务器。
如果我是对的,这可以通过将开发服务器的文档根目录从 C://xampp/htdocs/
更改为 C://xampp/htdocs/3H-Web-Wlements/
来解决。使用此设置,服务器将尝试从 3H-Web-Wlements/
而不是 htdocs/
服务 index.php
。
可以在通常称为 httpd.conf
的 Apache 配置文件中设置文档根设置。如果您使用的是 XAMPP 或 MAMP 之类的开发设置,您可能在控制面板中有一个按钮可以访问 httpd.conf。
更改后的设置应如下所示:
DocumentRoot C://xampp/htdocs/3H-Web-Wlements/
进行更改后,您需要重新启动网络服务器才能使更改生效。