2015-10-26 4 views
0

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

Доступ возможен при навигации по локальному хосту/тесту/в браузере.

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

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

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

Код:

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

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

Спасибо Wayne

ответ

1

Есть два (основных) способов сделать это:

Вариант 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 является то, что вы назвали только что созданный документ)

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

+0

Hi Ed, Спасибо за ответ, вы знаете какие-либо пошаговые инструкции для варианта 2? Поскольку я очень новичок в этом, это говорит о моей голове. –

+0

@WayneBowden Я уже пытался это объяснить. Есть ли какой-то шаг, который не ясен? Вам просто нужно создать страницу, такую ​​как 404.php, которая будет обрабатывать ваши 404 ошибки и добавить строку 'ErrorDocument 404/errors/404.php' в ваш файл' .htaccess'. Если это неясно, сообщите мне, какая часть не имеет смысла. –

+0

Хорошо, спасибо, всего несколько уточняющих вопросов. Является ли файл .htaccess чем-то, что мне нужно создать в папке с другими веб-страницами, или это что-то, что нужно изменить в каталоге wamp? –

0

Попробуйте поместить свои разные страницы в файлы, а затем настройте «роутер», который проверяет нужный 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

Спасибо за ваш ответ, Должен ли я просто добавлять этот код в файл index.php, я включил весь код сверху? –

+0

Код из вашего исходного сообщения, вероятно, должен быть помещен в нечто вроде 'Main.php' или' Login.php' или что-то в этом роде. Код из моего сообщения предназначен для перехода в 'index.php', потому что по умолчанию сервер будет сервером. Ваши URL-адреса будут выглядеть как 'mysite.com/index.php/foo'. Это похоже на способ работы CodeIgniter и других фреймворков PHP; хотя мой пример гораздо более упрощен. – erapert

Смежные вопросы