Сжать файл .htaccess - PullRequest
       38

Сжать файл .htaccess

3 голосов
/ 26 января 2012

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

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

Ответы [ 3 ]

1 голос
/ 26 января 2012

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

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

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

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

1 голос
/ 26 января 2012

У меня были некоторые из этих случаев раньше, в большинстве случаев вы можете заменить перенаправления на 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, поэтому сканеры все равно будут знать, что это постоянный ход.

1 голос
/ 26 января 2012

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

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

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

...