Назад | Перейти на главную страницу

Оптимизация правила перезаписи Apache (которое уже работает): какой-нибудь хороший совет?

Вот моя цель: у меня работает 9 веб-сайтов (названия, конечно, изменились):

  1. we.com
  2. we.fr
  3. doo.com
  4. doo.fr
  5. fpp.com
  6. ke.com
  7. wpp.com
  8. wgg.com
  9. t-y-u.fr

Я хотел каждый интернет сайт :

  1. каталог для размещения файла журнала ротации. Готово.
  2. обновлять awstats для каждого 24 часа и помещать результаты в отдельный каталог:
  - /web/awstats/we_com/
  - /web/awstats/we_fr/
  - /web/awstats/doo_com/
  - /web/awstats/doo_fr/
  - /web/awstats/fpp_com/
  - /web/awstats/ke_com/
  - /web/awstats/wpp_com/
  - /web/awstats/wgg_com/
  - /web/awstats/t_y_u_fr/
  1. делать только один виртуальный хост для веб-сайта общей статистики и имя, перенаправляемое на хороший веб-сайт статистики. Если вы введете один из этих URL-адресов, основной путь к сайту должен быть изменен соответствующим образом:
 1. http://stats.we.com/ change the base directory to /web/we_com
 2. http://stats.we.fr/ change the base directory to /web/we_fr
 3. http://stats.doo.com/ change the base directory to /web/doo_com
 4. http://stats.doo.fr/ change the base directory to /web/doo_fr
 5. http://stats.fpp.com/ change the base directory to /web/fpp_com
 6. http://stats.ke.com/ change the base directory to /web/ke_com
 7. http://stats.wpp.com/ change the base directory to /web/wpp_com
 8. http://stats.wgg.com/ change the base directory to /web/wgg_com
 9. http://stats.t-y-u.fr/ change the base directory to /web/t_y_u_fr

Я сделал это, но это оооочень долго: для каждого сайта свои правила:

    ###########################################
    # site we.com
    RewriteCond %{HTTP_HOST}  ^stats\.we\.com
    RewriteRule ^/$ /we/awstats.we.xml [QSA,L]
    # change other dirs to the base dir :
    RewriteCond %{HTTP_HOST}  ^stats\.we\.com
    RewriteCond %{HTTP_HOST}  ^stats\.we\.com
    RewriteRule ^/(.*) /wheeg/$1 [QSA,L]

Если у вас есть хороший способ его оптимизации, я бы хотел его увидеть (помните, что есть один сайт с "-", и его нужно изменить на "_")!

Первое правило оптимизации: не надо. Второе правило оптимизации (только для расширенного использования): пока не делайте этого.

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

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

Разве вы не можете использовать - вместо _ для t-y-u.fr? потому что вы можете использовать уникальную конфигурацию массового виртуального хоста, подобную этой, для всех ваших доменов:

<VirtualHost *>
    VirtualDocumentRoot /web/awstats/%-2_%-1/
    ServerName anything
    ServerAlias stats.we.com stats.we.fr stats.doo.com ...
</VirtualHost>

Проверьте http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html для получения дополнительной документации. Может быть, добавив правило перезаписи, которое вы можете изменить - с помощью _ в пути DocumentRoot. Для этого нужно несколько попыток.

Но обычно дерево делается так:

/web/domaine.tld/public/
/web/domaine.tld/public/www/
/web/domaine.tld/public/stats/
/web/domaine.tld/public/..
/web/domaine.tld/logs/

А с одним виртуальным хостом за доменом, использующим VirtualDocumentRoot, вы можете делать все, что хотите.