Я имею дело с командой хостинга, которая довольно пугливо управляет многими правилами перезаписи. Каков ваш опыт работы с количеством правил, которыми в настоящее время управляют ваши сайты?
Я вижу, что появятся десятки (если не больше) по мере того, как сайт растет и сжимается, и мне нужно установить ожидания, что это не выходит за рамки нормы.
Спасибо
Их беспокоит логистика управления многими правилами или производительность?
В первом случае рассмотрите возможность объединения хэш-карты, сгенерированной из БД, управляемой либо вашей CMS, либо инструментом CRUD, если, как Алекс, большинство ваших правил действительно исходят из таких вещей, как перемещение контента и маркетинговые кампании. Они могут быть протестированы вашими специалистами по контенту, а затем перенесены в производственную среду без особых усилий для ваших серверных команд.
Если проблема заключается в производительности, ну, это вопрос «как долго это кусок строки», но я определенно работал на сайтах с буквально сотнями правил перезаписи для поддержки таких вещей, как миграция контента, где не было заметного влияния на ответ. раз для серверов.
Вы можете подумать об использовании http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritemap что позволит читать одно правило из хэш-файла.
У нас недавно был практический опыт по этому поводу. Смотрите мой ответ здесь: https://stackoverflow.com/questions/1364673/apache-redirects-rewrite-maximum/18120886#18120886
Недавно у меня был такой же вопрос. Поскольку я не нашел практического ответа, мы реализовали 6 правил htaccess, из которых 3 имели 200 000 условий.
Это означает файл htaccess размером 150 МБ. На самом деле это было нормально в течение полдня, когда никто не использовал этот конкретный веб-сайт, хотя время загрузки страницы было в секундах. Однако на следующий день весь наш сервер был поврежден, с нагрузкой, намного превышающей 400. (машина 8 ядер, 16 ГБ ОЗУ, SAS RAID5, поэтому проблем с ресурсами обычно нет)Я предлагаю, если вам нужно реализовать что-то подобное. Разработайте свои правила, чтобы они не нуждались в условиях, и поместите их в карту перезаписи dbm. это легко решило для нас проблемы с производительностью.
http://httpd.apache.org/docs/current/rewrite/rewritemap.html#dbm
Очевидно, что у каждого будет существенно разное количество правил, которыми нужно управлять в зависимости от индивидуальных ситуаций. Думаю, десятки правил не редкость. Обычно мы используем перезапись для таких вещей, как перемещение контента, изменения технологий. Наш маркетинговый отдел постоянно обращается к нам с запросами на поисковую оптимизацию таких вещей, как просроченный контент, который мы обычно обрабатываем с помощью rewriterule. Мы также занимаемся такими вещами, как маркетинговые кампании, которые печатаются с указанием несуществующего URL, поэтому мы делаем его действительным, добавляя rewriterule.
Для сравнения: в моей организации у нас есть 140 перезаписей, охватывающих 19 поддоменов в нашей производственной среде.