2012-01-25 3 views
3

У меня есть файл htaccess, который содержит более 3000 строк, в основном благодаря 301 переадресации, которые у меня установлены с моего старого сайта электронной коммерции. Размер файла 323 КБ, и я беспокоюсь, что это будет нагрузкой для времени загрузки и, следовательно, конверсий.Сжать .htaccess файл

Есть ли что-нибудь доступное, которое может сжать (минимизировать?) Файл на меньший размер, или кто-то предлагает лучшую идею для обработки 301 переадресации?

+0

Можете ли вы дать образец? –

+0

Спасибо за ответы, но есть соответствие шаблонов доменам, которые можно сделать. Я не думаю. Нет логического сравнения между старыми URL-адресами и новыми. RedirectMatch 301 /acatalog/1000_Mile_Ultimate_Tactel_Ladies_Walking_Socks.html /1000-mile-ultimate-tactel.html RedirectMatch 301 /acatalog/1000_Mile_Ultimate_Tactel_Men_s_Walking_Sock.html /1000-mile-ultimate-tactel.html RedirectMatch 301 /acatalog/12_240_Volt_Mains_Adaptor.html/Campingaz -12-240-volt-mains-adaptor.html – Gavin

ответ

1

Если переадресовывает простые переадресовывает т.е. url1 к url2, нет регулярных выражений и т.д., и у вас есть доступ к httpd.conf, то вы могли бы использовать RewriteMap для всех переадресаций и, возможно, есть только 1 правило в ваш .htaccess для обработки эти.

Из RewriteMap документации

В-смотрели клавиши вверх не кэшируется HTTPD до (времени изменения модифицировано время) изменений файла проекта, или сервер HTTPD перезапуска. Это обеспечивает лучшую производительность на картах, которые вызываются многими запросами.

+0

Я подозреваю, что если бы у Gavin был доступ к корневому файлу apache или vhost config, он бы не использовал файлы '.htaccess'. – TerryE

1

Можете ли вы указать некоторые регулярные выражения для группировки/сопоставления всех этих переадресаций? Это затем предлагает два варианта сделать это:

  • Первый заключается в использовании (надеюсь, меньше) набор RewriteRule заявления с использованием [R=301] флага.
  • Во-вторых, чтобы переместить это перенаправление в сценарий перенаправитель, где вы используете, скажем, логику PHP, чтобы декодировать устаревший URI электронной коммерции в ее текущий формат, затем выдавать ответ с статусом 301/302 и местоположение: указывая на текущий URI. Это также потребует от вас перехватить устаревшие URI электронной коммерции для этого сценария перенаправления, например.

    RewriteRule ^(product/.*) rewriter.php?uri=$1 [QSA,L] 
    

Без некоторых примеров, я не могу дать более конкретный ответ. Сожалею.

1

У меня были некоторые из этих случаев раньше, в большинстве случаев вы можете заменить перенаправленные статусы RewriteRules. Например, если ваш URL, пошел от:

http://shop.example.com/shop/category/product-id.html 

Для этого:

http://shop.example.com/category/product-id.html 

Вы можете получить его с помощью переписывания, как это:

RewriteRule ^/shop/([a-z]+)/([0-9]+)\.html$ /$1/$2.html [L, R=301] 

Это будет по-прежнему приводить в 301 перенаправлять, поэтому сканеры будут все еще знать, что это постоянный ход.

Смежные вопросы