Ищу небольшую помощь, у меня есть базовая страница индекса php, настроенная на wamp.

Доступ можно получить, перейдя по адресу localhost / test / в браузере.

Однако при переходе к URL-адресу, если я добавляю "'", он возвращает версию используемого apache и порт, используемый для связи, что может быть опасно в чужих руках.

Можете ли вы сказать мне, есть ли быстрый способ обработать любые неразрешенные URL-адреса в php, чтобы вернуть сообщение, скажем, «Введен неправильный URL-адрес»?

Я новичок в этом, поэтому любая помощь будет принята с благодарностью.

Код такой:

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

Я пробовал поискать в Google, но незнание терминологии делает это практически невозможным.

Спасибо, Уэйн

0
Big_Papa_B 27 Окт 2015 в 00:07

2 ответа

Лучший ответ

Это можно сделать двумя (основными) способами:

Вариант 1. Направляйте весь трафик на определенную страницу.

Во-первых, вы можете направить весь трафик на одну страницу и обработать там ошибки. Вы делаете это, добавляя общий RewriteRule в ваш .htaccess файл. Пример:

RewriteRule .* index.php

Ваш index.php тогда должен обрабатывать как допустимые, так и неправильные URL-адреса.

Вариант 2. Используйте страницу настраиваемого обработчика ошибок

Создайте документ для обработки ошибок 404. Пример:

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

Установите этот документ в качестве обработчика 404 в .htaccess с помощью этого правила:

ErrorDocument 404 /errors/404.php

(Где 404.php - это то, что вы назвали только что созданный документ.)

Вариант 2 проще, но вариант 1 часто желателен в более сложных приложениях.

1
Community 20 Июн 2020 в 09:12

Попробуйте поместить разные страницы в файлы, а затем настройте «маршрутизатор», который проверяет нужный 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');
}
0
erapert 26 Окт 2015 в 21:16