Может .htaccess файл быть слишком большим

Наша компания изменяет веб-платформы, и мы хотели бы смочь сохранить наши результаты Google, таким образом, мы - планирование помещения 301 перенаправления в наш htaccess файл.

Мое беспокойство то, что, если, если я вставил все эти перенаправления (вероятно, 3000 - 5000 общих количеств) это замедлит сервер, поскольку это осуществляет все те проверки.

Кто-либо знает при наличии htaccess файла, это большое вызовет какие-либо проблемы? У меня есть довольно быстрый сервер для сайта (8 ядер), таким образом, я имею изрядное количество в наличии лошадиной силы.

8
задан Josh Pennington 30 June 2010 в 20:52
поделиться

4 ответа

Я сомневаюсь, что это заметно замедлит работу сервера. Но сначала проверьте это.

Создайте строковый файл .htaccess размером 5k в папке www / temp с некоторыми правилами перезаписи, которые вы будете использовать. Посмотрите, сколько времени занимает доступ к странице с файлом .htaccess и без него.

3
ответ дан 5 December 2019 в 22:16
поделиться

Хм. У меня нет точных цифр, может ли Apache иметь проблемы с производительностью с таким количеством перенаправлений, но мне было бы неудобно иметь такие огромные файлы htaccess, которые анализируются на каждом запросе , независимо от того, новый это или старый URL .

Если это вообще возможно, я бы старался обрабатывать сопоставление «старых» URL-адресов с новыми, используя язык на стороне сервера и таблицу базы данных для поиска, хотя бы для упрощения обслуживания.

Возможно ли это и как, зависит от вашей старой и новой структуры URL. Если бы, например, все старые URL-адреса имели общую структуру вроде

www.domain.com/cms/folder/pagename.htm

, которую можно было бы отделить от новой структуры, я бы перенаправил весь «старый» трафик в центральный файл сценария (какой бы ни была ваша серверная платформа, ASP, PHP ... ) и выполните там простой поиск и перенаправление заголовка.

1
ответ дан 5 December 2019 в 22:16
поделиться

В других ответах есть несколько хороших предложений, но если вы не решите использовать какую-либо альтернативу для перезаписи правил, я настоятельно рекомендую поместить эти строки в файл конфигурации основного сервера вместо .htaccess файл. Таким образом, Apache будет анализировать их только один раз при запуске и может просто ссылаться на внутреннюю структуру данных, вместо того, чтобы проверять файл .htaccess при каждом запросе. Фактически, разработчики Apache рекомендуют вообще не использовать файлы .htaccess , если у вас нет доступа к основной конфигурации сервера. Если вы не используете .htaccess , вы можете установить

AllowOverride None

в основной конфигурации, и тогда Apache вообще не придется тратить время на поиск файлов. На загруженном сервере это может быть полезной оптимизацией.

Еще одна вещь, которую вы могли бы сделать (в сочетании с вышеизложенным), - это использовать директиву RewriteMap для «аутсорсинга» перезаписи URL внешней программе. Вы можете написать эту внешнюю программу, например, для хранения старых URL-адресов в хэш-таблице или для какой-либо другой подходящей оптимизации.

2
ответ дан 5 December 2019 в 22:16
поделиться

Согласно справочной документации: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html Я полагаю, что обработать все 3k будет перетаскиванием x2 по каждому запросу.

Более того, я полагаю, что управлять этими правилами при изменении было бы непросто - вручную это ...

0
ответ дан 5 December 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: