当404被触发时,重定向到特定的php文件

时间:2016-03-10 09:11:13

标签: php .htaccess api rest

在我的rest API中,我希望显示一个像这样的json错误:

{"error": "url not correct"}

当用户插入错误的请求时,请使用此localhost.com/api/代替此localhost/api
我将htaccess设置为:

RewriteEngine On

RewriteBase /v1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L]
ErrorDocument 404 http://localhost/api/error.php

问题是重定向不起作用,当用户插入错误的请求时,如上所示,显示如下:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /api/meach was not found on this server.</p>
<hr>
<address>Apache/2.4.7 (Ubuntu) Server at localhost.it Port 80</address>
</body></html>

现在另一个&#34;问题&#34;我想,可能是http://localhost/api/error.php,&#39;因为如果我把api放在不同的服务器上,也许我也会找不到? 我不是htaccess配置的专家。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

除非您是localhost.com的所有者,否则不可能

想象一下有人在地址栏中输入http://stackoverflow.com/api/user,您想将其重定向到http://localhost/api/user。那将是同样不可能的挑战。

您只能“纠正 http://localhost/后面的错误

想象一下,有人试图访问http://localhost/something/not/existing/ 然后你可以将他重定向到http://localhost/api/user/

我希望我的解释清楚明白。