Я хочу создать веб-сайт с чистым PHP. Я хочу скрыть параметры URL. Т.е. Я хочу сделать свой веб-сайт с чистыми URL. Есть ли существует какой-либо способ сделать это с использованием какой-либо платформы? ДЕЙСТВИТЕЛЬНО ЛИ ЗАВИХРЕНИЕ полезно, чтобы сделать это?
См. Перезапись URL в PHP без .htaccess
, если вы не хотите или не можете использовать .htaccess
, иначе обратитесь к Как: Перезапись URL в PHP? .
Нет, ни curl, ни фреймворк этого не делают. Ни в коем случае не php.
Это веб-сервер , который обрабатывает URL-адреса.
Итак, если вам нужны поддельные URL-адреса, вам необходимо настроить свой веб-сервер для перенаправления определенных URL-адресов на определенные сценарии.
Самый распространенный способ - использовать веб-сервер Apache с модулем mod_rewrite
Просто взгляните на него... перед началом работы
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
Прежде всего: Это невозможно только с PHP (по крайней мере, не в тех формах URL, о которых я думаю, читая чистый URL). Веб-сервер должен знать, как обрабатывать запросы и какие запросы должны быть переданы вашему PHP-скрипту. В противном случае вы, скорее всего, просто получите ответ 404.
Потому что поведение веб-сервера по умолчанию заключается в том, что он просто берет запрашиваемый путь URL и пытается сопоставить его с существующим файлом в корне документа. Если соответствующий файл найден, то либо содержимое файла передается обратно клиенту, либо - как в случае с файлами PHP - содержимое файла передается соответствующему интерпретатору, а возвращенные данные передаются обратно клиенту. А если файл не найден, то в ответ выдается код состояния 404. Так что в какой-то момент вам нужно настроить свой веб-сервер.
Но после этого, когда запрос был передан вашему PHP-скрипту, вы, конечно, можете использовать только PHP для создания чистых URL. И я бы скорее предложил делать это с помощью PHP, чем с помощью утилит веб-сервера. Потому что ваше PHP-приложение должно лучше знать, как обрабатывать запрошенный URL.
В PHP вся необходимая информация находится в переменной $_SERVER
:
$_SERVER['REQUEST_URI']
содержит путь и запрос запрашиваемого URL (его можно разобрать с помощью parse_url
), а $_SERVER['PATH_INFO']
содержит PATH_INFO, если вы его используете (см. Apache's AcceptPathInfo
directive).