Разгребая чужие старые проекты, наткнулись сегодня вот на такой шедевр.
RewriteRule ^sistema/avtomatizatsiya/comodo_dragon_16_2_1_0[/]?$ index.php?prog_id=1812&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/comodo_dragon_16_2_1_0/edit[/]?$ index.php?prog_id=1812&edit=1&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/panda_cloud_antivirus_3_0_1[/]?$ index.php?prog_id=2546&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/panda_cloud_antivirus_3_0_1/edit[/]?$ index.php?prog_id=2546&edit=1&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/speedfan_4_46[/]?$ index.php?prog_id=1987&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/speedfan_4_46/edit[/]?$ index.php?prog_id=1987&edit=1&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/gilisoft_dvd_ripper__3_0_1[/]?$ index.php?prog_id=2142&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/gilisoft_dvd_ripper__3_0_1/edit[/]?$ index.php?prog_id=2142&edit=1&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/enigma_virtual_box_3_80_build_20111222[/]?$ index.php?prog_id=1789&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/enigma_virtual_box_3_80_build_20111222/edit[/]?$ index.php?prog_id=1789&edit=1&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/avg_internet_security__8_5_416[/]?$ index.php?prog_id=609&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/avg_internet_security__8_5_416/edit[/]?$ index.php?prog_id=609&edit=1&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/advanced_system_optimizer__3_0_609_4664[/]?$ index.php?prog_id=711&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/advanced_system_optimizer__3_0_609_4664/edit[/]?$ index.php?prog_id=711&edit=1&%{QUERY_STRING}
RewriteRule ^sistema/avtomatizatsiya/second_copy_7_1_0_33[/]?$ index.php?prog_id=353&%{QUERY_STRING}
И так более 4000 строк — полная версия тут.
Как выяснилось, при заливке нового контента — в .htaccess каждый раз автоматически дописываются новые и новые строки. И ведь каждый раз, при запросе к каждой странице и даже картинке — Apache лопатит все 4000 строк поочередно, пытаясь найти соответствие. На каждую страницу — 4000 правил для выбора подходящего редиректа и еще 80000-120000 (по 4000 на каждый из 20-30 файлов изображений, стилей и javascript’а) совершенно бесполезных regexp-проверок. Говорить здесь про постановку тегов вроде [L] наверное неуместно.
PS: Было бы смешно, если бы не было грустно. К сожалению регулярно сталкиваюсь с непониманием программистов принципов работы htaccess, и каждый раз приходится объяснять, почему best-practices это менее 10 правил и единая точка входа в веб-приложение.
PPS: Хотел запостить на govnokod.ru, но, к сожалению, у них ограничение в 100 строк. А этот шедевр необходимо созерцать только целиком.