Comments 24
Долго работал над отсечением привязанностей, чтобы после изучения mod_rewrite описать в статье суть проблемы, а не только свои эмоции :)
Приведу баянистую цитату, с которой полностью согласен.

«Несмотря на тонны примеров и документацию, mod_rewrite это Вуду. Чертовски клёвый Вуду, но все-таки Вуду.» (с) Brian Moore
Просмотрел по диагонали. Информация полезная и хорошо изложена. Многим поможет.
У меня есть дополнение. В статье было бы хорошо упомянуть про директиву RewriteLogLevel.

RewriteLogLevel может меняться в диапазоне от 0 (по умолчанию) до 9
Установка RewriteLogLevel в 9 позволит по шагам отследить как выполняются преобразования mod_rewrite — в логах будет просто море информации для анализа, изучения и отладки.
Очень хорошо изложено! Жду продолжение про RewriteCond и возможные хитрости в использовании.
Гм, а какие там хитрости? Вы задайте здесь вопросы — я постараюсь ответить. Может, и наберется на статью :)
Я так не скажу, потому что я не знал те хитрости, про которые вы рассказали в статье. Открыл для себя много нового. Но что-то мне подсказывает, что там тоже будут свои, скажем так, интересные особенности. Да и вообще ваш стиль изложения до ужаса приятен и информативен. Хочется просто ещё одну хорошую статью.
Спасибо! Вон оно как, оказывается…

«О сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель...»
С одной стороны хорошая статья, с другой стороны — а как адепты будут постигать дзен rtfm?
Я бы добавил еще один пункт: стараться по возможности не использовать mod_rewrite. :)

Например, классическая ЧПУ-лапша в 100500 реврайтов куда элегантнее раскладывается по Location-ам. Привычка использовать для таких целей rewrite, очевидно, происходит от ограничений .htaccess (в котором с Location ничего не выйдет), и если целевая платформа — шаред-хостинг, это нормально. Но многие, уже работая на выделенном сервере и имея доступ к httpd.conf, продолжают по привычке клепать реврайты.
Что вы имеете в виду под Location? Разбор урлов уже внутри скриптов сайта?
# работать не будет — аргументы ссылки не попадают в RewriteRule
RewriteRule index.php\?newspage=([0-9]+) news.php?page=$1


Ввиду того, что нет ^ и $, я правильно понял?
Нет, ввиду того, что аргументы ссылки не попадают в строку, которую анализирует RewriteRule.
Вот это просто отличная статья. Все написано доступным языком.
Only those users with full accounts are able to leave comments. Log in, please.