已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
21小时前关门了。
Improve this question
这个问题花了我几个小时,我仍然没有找到解决办法
我想重定向404错误链接到我自己的错误页面
这是我写在我的.htaccess文件中的内容
Options -MultiViews
RewriteEngine on
ErrorDocument 404 /home/example.com/public_html/error.php
当我尝试输入一个错误链接时,它不会重定向到我自己的错误页面。它仍然显示原来的404错误页面。
对于带参数的url,我写了
$data = query("SELECT * FROM product WHERE url='$url' ");
if( mysqli_num_rows(data) === 0 )
{
http_response_code(404);
echo file_get_contents("error.php");
exit;
}
但是在我写了那个之后,即使我输入了正确的链接和参数,它也什么都没有显示,当我输入了不正确的链接和参数,它也什么都没有显示。
有人有解决办法吗?谢谢!
我在我的本地主机和共享主机上试过这个东西,它工作得很好。
2条答案
按热度按时间u4dcyp6a1#
为
ErrorDocument
指令指定的路径应该是相对于文档根目录的URL路径,而不是绝对文件路径(看起来就是这样)。(The将导致Apache默认的404响应,另外需要注意的是,404是由于尝试提供404文档来处理请求而导致的。)
所以,大概这样改吧:
请注意,这与mod_rewrite无关,因此代码片段中的
RewriteEngine
指令是多余的。参考编号:
这与Apache
ErrorDocument
指令无关-如果您暗示它是这样的话。触发错误文档的两种方法是不相关的。但是您在哪里设置
$url
var呢?iugsix8n2#
我认为
mysqli_num_rows(data)
应该是mysqli_num_rows($data)
。服务器正在阅读.htaccess文件吗?您使用的是什么提供程序?
请确保在服务器配置中允许ErrorDocument指令。某些服务器配置不允许使用此指令。您可以检查服务器的配置以查看是否允许使用此指令。
请检查.htaccess文件的权限。此文件必须可由Web服务器读取,才能应用重定向规则。
请确保错误页的路径正确。在.htaccess文件中,您将错误页的路径指定为/home/example.com/public_html/error.php。此路径相对于网站的根目录,因此请确保该文件存在于该位置,并且Web服务器可以读取该文件。
如果您仍然无法让重新导向运作,您可以尝试使用错误页面的绝对URL,而非相对路径。例如:
该页面可能被缓存了吗?Cloudflare etc.