Наша компания изменяет веб-платформы, и мы хотели бы смочь сохранить наши результаты Google, таким образом, мы - планирование помещения 301 перенаправления в наш htaccess файл.
Мое беспокойство то, что, если, если я вставил все эти перенаправления (вероятно, 3000 - 5000 общих количеств) это замедлит сервер, поскольку это осуществляет все те проверки.
Кто-либо знает при наличии htaccess файла, это большое вызовет какие-либо проблемы? У меня есть довольно быстрый сервер для сайта (8 ядер), таким образом, я имею изрядное количество в наличии лошадиной силы.
Я сомневаюсь, что это заметно замедлит работу сервера. Но сначала проверьте это.
Создайте строковый файл .htaccess размером 5k в папке www / temp с некоторыми правилами перезаписи, которые вы будете использовать. Посмотрите, сколько времени занимает доступ к странице с файлом .htaccess и без него.
Хм. У меня нет точных цифр, может ли Apache иметь проблемы с производительностью с таким количеством перенаправлений, но мне было бы неудобно иметь такие огромные файлы htaccess, которые анализируются на каждом запросе , независимо от того, новый это или старый URL .
Если это вообще возможно, я бы старался обрабатывать сопоставление «старых» URL-адресов с новыми, используя язык на стороне сервера и таблицу базы данных для поиска, хотя бы для упрощения обслуживания.
Возможно ли это и как, зависит от вашей старой и новой структуры URL. Если бы, например, все старые URL-адреса имели общую структуру вроде
www.domain.com/cms/folder/pagename.htm
, которую можно было бы отделить от новой структуры, я бы перенаправил весь «старый» трафик в центральный файл сценария (какой бы ни была ваша серверная платформа, ASP, PHP ... ) и выполните там простой поиск и перенаправление заголовка.
В других ответах есть несколько хороших предложений, но если вы не решите использовать какую-либо альтернативу для перезаписи правил, я настоятельно рекомендую поместить эти строки в файл конфигурации основного сервера вместо .htaccess
файл. Таким образом, Apache будет анализировать их только один раз при запуске и может просто ссылаться на внутреннюю структуру данных, вместо того, чтобы проверять файл .htaccess
при каждом запросе. Фактически, разработчики Apache рекомендуют вообще не использовать файлы .htaccess
, если у вас нет доступа к основной конфигурации сервера. Если вы не используете .htaccess
, вы можете установить
AllowOverride None
в основной конфигурации, и тогда Apache вообще не придется тратить время на поиск файлов. На загруженном сервере это может быть полезной оптимизацией.
Еще одна вещь, которую вы могли бы сделать (в сочетании с вышеизложенным), - это использовать директиву RewriteMap
для «аутсорсинга» перезаписи URL внешней программе. Вы можете написать эту внешнюю программу, например, для хранения старых URL-адресов в хэш-таблице или для какой-либо другой подходящей оптимизации.
Согласно справочной документации: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html Я полагаю, что обработать все 3k будет перетаскиванием x2 по каждому запросу.
Более того, я полагаю, что управлять этими правилами при изменении было бы непросто - вручную это ...