Захватите конец URL-адреса на стороне сервера

254
agz

Если у меня есть пользователь, обращающийся к моему сайту, например: www.example.com/testpage.html, есть ли способ получить "testpage.html" в виде строки, если testpage.html не существует? (Я хочу сделать пользовательские сообщения об ошибках 404. В основном, я хочу, чтобы пользователь зашел на страницу, которая не существует, скажем «Эта страница [pagename] не существует») и отобразил результат поиска с именем страницы в качестве запроса.)

0

2 ответа на вопрос

2
Garrett

Как правило, если вы хотите сделать что-нибудь полезное с динамическим контентом, вам потребуется какой-то интерпретируемый язык для обеспечения логики. Как вы не указали, я предполагаю, что вы будете использовать PHP.

В случае PHP у вас есть доступ к суперглобальному значению $ _SERVER, который, помимо прочего, предоставляет REQUEST_URI (например, $ _SERVER ['REQUEST_URI']), который именно то, что вы ищете. Затем вы можете построить некоторую логику в своем PHP-сценарии вокруг этой переменной, чтобы выполнять действия, основанные на определенных совпадающих URI.

Пример:

if ($_SERVER['REQUEST_URI'] == "/testpage.html") { // Do something here } 

Конечно, вы могли бы также полюбить регулярные выражения, операторы case и т. Д.

Где будет храниться этот php-скрипт? agz 11 лет назад 0
http://us.php.net/manual/en/install.php, вероятно, будет хорошим началом. :) Garrett 11 лет назад 1
0
Andy Lester

Похоже, ваш реальный вопрос: «Как сделать пользовательскую страницу 404», да? Это будет зависеть от веб-сервера.

Что касается извлечения частей URL, если вы используете PHP, то вам нужна parse_url()функция. В Perl вы бы использовали URIмодуль

Похожие вопросы