терапия
Сейчас этот блог в основном про психотерапию.
как правильно
Слушайте меня, я вас научу правильно жить.
психология
Буржуазная лже-наука, пытающаяся выявить закономерности в людях.
практика
Случаи и выводы из психотерапевтической практики.
кино
Фильмы и сериалы.
книги
Это как кино, но только на бумаге.
nutshells
«В двух словах», обо всем.
дорогой дневник
Записи из жизни (скорее всего, не интересные).
беллетристика
Мои литературные произведения и идеи.
духовный рост
Когда физический рост кончается, начинается этот.
дивинация
Как предсказывать будущее.
половой вопрос
Про секс и сексуальность.
заяижопа
Творческий дуэт с моей женой.
магия
«Магическое — другое название психического».
Карл Юнг
игровой дизайн
Раньше я делал игры.
игры
Компьютерные игры.
язык
Слова там всякие.
людишки
Уменьшительно-ласкательно и с любовью.
культ личности
Про великих людей (то есть, в основном про меня).
hwyd
Уникальная Система Прививания Привычек.
буклет
я
идеи
блоги
spectator.ru
дети
wow
вебдев
музыка
контент
программирование
религия
дейтинг
диалоги
яндекс
кулинария
coub
fitness
символы
йога
шаманизм
tiny
ребенок

ЧПУ и PHP (revisited)

21 год назад в категориях вебдев php

ЧПУ — это термин, придуманный командой НовоКиберска, обозначает он «Человекопонятный УРЛ». Термин нигде широко не употреблялся, пока я не написал 5 сентября 2000 года заметку «ЧПУ и PHP». За эти три года термин довольно неплохо раскрутился.

За эти годы очень многие ссылались на эту заметку, поэтому я взял на себя труд переписать ее, добавив еще несколько способов сделать ЧПУ и убрав всякий мусор. Итак...

В принципе, ничего нового и оригинального в идее понятного УРЛа нет. Про это писал и Лебедев, и другие товарищи. Вообще, мне всегда нравились УРЛы такого, например, вида: php.resourceindex.com/Complete_Scripts/Guestbooks/

Итак, как это сделать в домашних условиях?

Способ раз

Вообще, самая первая мысль — это создавать для каждой заметки поддиректорию с соответствующим именем и помещать в нее index.html, то есть сделать так, чтобы по адресу spectator.ru/technology/php/user_friendly_urls лежал бы реальный файл. Разумеется, так дело не пойдет.

Способ два

Думаем дальше. Раз страница не существует, то она выдает 404. Так что вторая идея — прописать в фале .htaccess страницу, которая будет выдаваться при ошибке 404, а уже эта страница будет смотреть на текущий УРЛ и выдавать нужный документ

То есть, в .htaccess пишем:


------------------------------------
ErrorDocument 404 /index.php3
ErrorDocument 401 /index.php3
------------------------------------

Пользователь набирает spectator.ru/technology/php/user_friendly_urls, такая страница не найдена, и загружается файл index.php3. Дальше — все просто. Переменная $REQUEST_URI дает нам адрес вызываемой страницы (в данном случае это будет /technology/php/user_friendly_urls), вывести на экран соответствующий документ — дело техники.

Этого мало. В некоторых браузерах и с поисковиками такой фокус не пройдет: страница 404 будет выдавать соответствующий код, и страницы индексироваться не будут. Поэтому надо, чтобы страница, которая грузится в случае ошибки 404, изменяла бы код ошибки и сигналила, мол, все ОК, есть такая страница:

Итого: прописываем в .htaccess страницу, которая, собственно, за все отвечает (у меня это index.php3). В этой странице пишем php-скрипт, который работает с $REQUEST_URI, шлет заголовок «http/1.0 200 Ok» и отображает то, что надо.

Плюсы: Очень простой способ. Работает почти везде.
Минусы: При таком способе нельзя постить содержимое формы на несуществующие псевдоурлы. И если в Апаче ведется лог 404-ых ошибок, то он будет забит.

Способ три

Для этих (и не только) целей есть специальный модуль в Апаче, который называется mod_rewrite. Он позволяет «переписывывать урлы», то есть, преобразовывать их «на лету» по правилам, которые вы ему опишите.

Это очень мощный модуль, и если вы в нем разберетесь, то сможете творить чудеса. Сам я до сих пор довольно мало с ним работал, поэтому читайте документацию, благо, что ее полно.

Module mod_rewrite URL Rewriting Engine.
A Users Guide to URL Rewriting with the Apache Webserver.
Модуль Apache mod_rewrite.
Mod_rewrite для чайников.

Плюсы: Очень мощный способ.
Минусы: Может не хватить мозгов. На хостинге может быть не установлен этот модуль.

Способ четыре

Основан на директиве FilesMatch, которая в Апаче является core feature. Все просто. Пишем опять же в .htaccess

Action throw /index.php


ForceType throw


ForceType application/x-httpd-php

После этого все УРЛы, которые подпадают под условие «^([^.]+)$», (то есть все урлы, в которых не содержится точка) будут передаваться на index.php. Вы можете написать свое условие, разумеется.

Подробности: тут, тут или тут.

Плюсы: Простой и удобный способ.
Минусы: Говорят, что для того, чтобы ForceType работал, php должен быть подключен к апачу в виде модуля. Если php вызывается, как обыкновенный CGI — ForceType работать не будет.

0

Очень наглый и грубый

21 год назад в категории spectator.ru

…этот Спектатор очень наглый и грубый, и компания у него такая-же наглая и грубая. Раньше у него хостился некий Инсомниак — тоже наглый и грубый, а теперь у него хостится какой-то Регистер — так тот вообще полный отморозок!!!…

Спасибо!

0

Overkill

21 год назад в категории nutshells

«Overkill — это наш метод» — хороший принцип. Надо запомнить.

0

Научрук Спектатора

21 год назад в категории культ личности

Ходил в гости к Берсу, услышал от него веселую историю. Однажды в разговоре с молодыми людьми Берс мимоходом упомянул, что был научным руководителем Великого И Ужасного Спектатора. После чего, говорит, относиться к нему стали с заметно большим уважением.

Мы хорошо посмеялись на эту тему. Ну ведь весело же. Если я приду к каким-нибудь академикам и профессорам и скажу, что моим научным руководителем был Берс — меня ведь тоже уважать начнут.

Главное — найти правильную целевую аудиторию, да.

0
Мой «Курс реабилитации людей с техническим образованием».

Идея флешмоба

Собирается 100 человек и увлеченно пиздят о том, что флешмоб — это круто. Договариваются об акции. Тщательно обсуждают, как это будет. Назначают время. А потом все, как один, дружно никуда не идут.

Название для пива

Хорошее название для пива, дарю: «Моча любимой женщины».

Что-то вроде Man’s Health

Всё же, register/spectator это что-то вроде Man’s Health. Типа, вам там очень научно-популярно и с шутками-прибаутками объяснят, что такое постмодернизм, чем отличается копирайт от авторского права и почему Ээльмаа -- гондон. Люблю такое.

Конец цитаты.

Trust no one

С ужасом понимаю две вещи: 1. Многие пишут тексты, не задумываясь о том, что их кто-то может прочитать. Верней, не задумываясь о реакции, а «потому что наболело» или «потому что поперло». 2. Когда что-то пишешь специально, отдавая себе полный отчет в том, зачем и что ты делаешь, многие думают, что это появилось «потому что наболело». (еще 61 слово)

Квартирный вопрос-2

Продолжая тему. В той же программе «Квартирный вопрос» очередной «дизайнер интерьеров» сказал артикулировал очередную тенденцию. Оказывается, «филлипинская мебель придает комнате глубину филиппинского этнического эпоса». Интересно, они подумали о том, что среди зрителей могут найтись люди, которые знают, что такое «этнический» и «эпос»?. (еще 51 слово)

Список пяти

В «Друзьях» был эпизод: пары договорились, что у каждого есть список 5-и кинозвезд, с кем они переспали бы, при этом вторая половина обязуется не ревновать при словах «Я бы переспал с....». Идея мне понравилась, и я начал составлять свой список. Из актрис это было бы что-то типа: 1. (еще 189 слов)

Логичная фобия

Сюжет для рассказа (?). Человек боится летать на самолетах. Его, как человека разумного, пытаются успокоить, аппелируя к разуму: дескать, шансов разбиться на машине в N раз больше. Приводят статистические выкладки, случаи из жизни и прочее. После этого он начинает бояться ездить и на машинах тоже..

The Ring

Краткое содержание фильма «The Ring»:

...А потом зазвонил телефон.
— Кто говорит?
— Слон.
— Откуда?
— От верблюда.