Известны также как «Человеко-Понятные URL» или просто ЧПУ.1) Это замена реальных ссылок на скрипты с параметрами, которые формируют страницу, ссылками как бы на статичные HTML-файлы. При обращении по такой ссылке на сервере организуется её подмена и вместо несуществующего файла вызывается скрипт, который формирует страницу.
Основных путей реализации всего два. И оба они основаны на подмене URL с помощью правил для модуля mod_rewrite.
В первом случае набор правил замены делается так, чтобы получить из «статической» ссылки параметры для передачи скрипту. То есть, ссылка преобразуется в вызов скрипта с GET-параметрами. Во втором случае правило одно: все запросы передаются одному скрипту, который берет исходный запрошенный URL из переменных окружения и разбирает, извлекая оттуда все необходимые значения.
Иногда эти два метода комбинируют — некоторые специфические запросы разбираются по собственным правилам и передаются отдельным скриптам. Все, что не подходит ни под одно из правил, передается «главному» скрипту и разбирается им.
Существовал еще один экзотический способ подмены URL без применения mod_rewrite. Поскольку файлы, к которым адресуется псевдостатика, реально не существуют, обращение вызывает реакцию веб-сервера "404 Not Found". Если скрипт поставить обработчиком 404-й ошибки, он может разобрать псевдостатический URL и выдать нужную страницу, подменив код статуса в HTTP-заголовке на «200 OK». Достоинство такого подхода только одно: можно применять на сервере, где не установлен mod_rewrite, но попробуйте найти такой Unix-хостинг, где этот модуль не установлен. Недостатки очевидны: быстро растет лог ошибок, а разбор нештатных ситуаций по логам усложняется до предела.
Вопрос можно поставить и иначе: так ли уж нужна псевдостатика? Однозначного ответа не существует, поскольку со структурой URL связан целый ряд мифов, плохо поддающихся проверке и осмыслению. Кроме того, за время существования Мировой Паутины не раз менялась мода на то или иное представление адреса документа. В итоге отношение к псевдостатическим ссылкам — больше дело вкуса, чем вопрос целесообразности.
В начале был Гипертекстовый Документ, и он хранился в файле с расширением «.html», чтобы всем было понятно, что это. Назывался такой документ статичным, поскольку изменить там что-нибудь можно было, только переписав файл. Из таких файлов и состояли сайты (некоторые и сейчас так устроены). Для софта от Microsoft, который тогда считал, что расширение должно быть до 3 символов, было короткое расширение «.htm». Сайтов было не мало, а очень мало, поэтому предполагалось, что ссылку на интересную страницу посетитель с удовольствием выучит наизусть. Над именами файлов думали не меньше, чем сейчас думают над доменными именами.
Интерфейс CGI дал возможность программам, работающим на сервере, генерировать страницы и отправлять их клиенту вместо отправки содержимого файлов. Документы такого рода назвали динамически генерируемыми. Ссылки на них были ссылками на CGI-скрипт (обычно перловый) и содержали параметры, которые определяли, что скрипт сгенерирует. Потом появился великий и ужасный PHP, который заработал прямо в среде веб-сервера, перемежая свои инструкции с HTML-кодом, и все стало гораздо проще.
Сайтов было еще не слишком много, но уже не так мало, чтобы помнить адрес каждой интересной страницы. И красивые имена файлов никого уже не волновали. Зато ссылка с цепочкой параметров стала престижной. Она свидетельствовала, что сайт принадлежит серьезной современной конторе, что он ужасно сложный и на него не пожалели денег. Доходило до курьезов, когда за «динамическими» ссылками скрывался все тот же статический сайт, только файлы имели расширение «.php», а параметры варьировали на страницах какую-нибудь незначительную ерунду. Лишь бы выглядеть современно.
Поисковые системы начали появляться уже после появления CGI, но еще во времена господства статики. И первое время им приходилось индексировать по большей частью статику. Положение изменилось с широким распространением PHP и ухудшалось по мере удешевления хостинга с его поддержкой. Быстро расплодились пионеры и школьники, что-то умеющие на нем писать. Появились первые CMS, облегчавшие строительство сайтов. В Паутине замелькали «динамические» ссылки. Число страниц стало расти во много раз быстрее, чем количество полезной информации.
Поисковые системы осторожно обозначили свою позицию: индексирование сайтов с динамическими ссылками было заметно медленнее. В среде оптимизаторов распространилось мнение, что ссылки с параметрами «не нравятся» поисковикам. В результате мода на динамические ссылки быстро пошла на спад, зато появилась мода на псевдостатику. Но желание отличиться никуда не делось, поэтому псевдостатические ссылки были иногда очень причудливыми и на статику совсем не похожими.
Если внимательно посмотреть на весь ссылочный зооцирк, порожденный псевдостатикой в разных ее вариантах, становится ясно: ни для людей, ни для поисковых систем уже нет никакой разницы между «динамическими» и «статическими» URL. Очень немногие варианты ссылок похожи на реальную статику. В ходе сканирования поисковым роботом ни один известный «движок» не может полностью имитировать статику. За редчайшими исключениями поисковики отлично определяют, на чем сделан сайт, и их не обманешь. Механизм распознования может быть разным, но даже если вы удалили все признаки CMS - поисковый робот все равно легко определяет динамический контент. Он грузится не сразу, как статическая страница, а по частям. Конечно, существует кеширование динамических страниц - в общем случае на сервере генерируется статическая страница, которая и отдается пользователю, а при ее изменении она переписывается. Но это уже предмет отдельного обсуждения.
Еще один довод в пользу псевдостатики — возможность внедрения нужных слов в ссылки. Это призвано повысить релевантность страницы нужному запросу. Вопрос, насколько это действенно, остается открытым. А на вопрос, что мешает впихнуть те же слова в «динамическую» ссылку, пока никто не дал внятного ответа.