Может ли файл .htaccess быть слишком большим - PullRequest
8 голосов
/ 01 июля 2010

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

Меня беспокоит то, что если я добавлю все эти перенаправления (возможно, всего 3000 - 5000), это замедлит работу сервера, так как он выполняет все эти проверки.Этот большой файл htaccess вызовет какие-либо проблемы?У меня довольно быстрый сервер для сайта (8 ядер), поэтому у меня есть достаточное количество лошадиных сил.

Ответы [ 4 ]

3 голосов
/ 01 июля 2010

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

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

2 голосов
/ 01 июля 2010

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

AllowOverride None

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

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

1 голос
/ 01 июля 2010

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

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

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

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

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

0 голосов
/ 01 июля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...