Вот моя цель: у меня работает 9 веб-сайтов (названия, конечно, изменились):
Я хотел каждый интернет сайт :
- /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. 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, вы можете делать все, что хотите.