处理PHP中的异常

时间:2015-10-26 21:07:51

标签: php exception web error-handling url-routing

寻找一点帮助,我在wamp上设置了一个基本的php索引页。

通过在浏览器中导航到localhost / test /来访问。

但是,当我追加"'""它返回正在使用的apache的版本和用于通信的端口,这在错误的手中可能是危险的。

你能否告诉我有一种快速方法可以处理php中任何未解析的网址以返回说“"输入的网址不正确”的消息"?

我是新手,所以任何帮助都会非常感激。

代码是:

<?php include "config.php"; ?>

我尝试使用谷歌搜索,但不熟悉术语使这几乎不可能。

谢谢Wayne

2 个答案:

答案 0 :(得分:1)

有两种(主要)方法可以做到这一点:

选项1 - 将所有流量路由到特定页面

首先,您可以将所有流量路由到一个页面并处理其中的错误。您可以通过向RewriteRule文件添加常规.htaccess来执行此操作。例如:

RewriteRule .* index.php

您的index.php必须同时处理合法和不正确的网址。

选项2 - 使用自定义错误处理程序页面

创建一个文档来处理404s。例如:

<?php
echo "Sorry, that page wasn't found";

使用此规则将该文档设置为.htaccess中的404处理程序:

ErrorDocument 404 /errors/404.php

(404.php就是你刚才创建的文件。)

选项2更容易,但选项1通常适用于更复杂的应用程序。

答案 1 :(得分:0)

尝试将不同的页面放入文件,然后设置&#34;路由器&#34;它会检查所需的URL并呈现相应的页面。像这样:

// index.php

function goToURL ($url) {
    // render the page at $url
    include ($url);
}

$routed = false;
$url = $_SERVER ['SCRIPT_URL'];
$routes = array (
    '/foo' => 'SomePage.php',
    '/bar' => 'OtherPage.php'
);

foreach ($routes as $k => $v) {
    if (strpos ($url, $k) !== false) {
        goToURL ($v);
        $routed = true;
    }
}

// if no specific url matches then just send them to the home page
if (!$routed) {
    goToURL ('Home.php');
}