Общая настройка перезаписи для нескольких виртуальных хостов - PullRequest
0 голосов
/ 16 июля 2009

Я использую Apache2 с несколькими vhosts в папке с включенными сайтами, каждый из которых выглядит примерно так:

<VirtualHost *:80>
    ServerName site1.com
    ServerAlias www.site1.com

    DocumentRoot /home/sites/site1/www/
    <Directory /home/sites/site/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order allow,deny
        allow from all
    </Directory>

    <Directory /home/sites/mainsite/www>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order allow,deny
        allow from all
    </Directory>

    # Provide default favicon.ico and robots.txt using rewrite
    RewriteOptions Inherit
    RewriteEngine On
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
    RewriteRule ^/(robots\.txt|favicon\.ico)$ /mainsite_alias$0 [PT,NC,L]
</VirtualHost>

Код перезаписи является общим для всех vhosts (предоставляя значение по умолчанию favicon.ico / robots.txt), но помещение этого кода в httpd.conf, похоже, не дает никакого эффекта - журналы перезаписи ничего не показывают.

Как я могу сделать этот код общим для всех vhosts без дублирования кода?

В качестве альтернативы - есть ли лучший способ получения значков по умолчанию?

Спасибо

Ответы [ 2 ]

1 голос
/ 18 июля 2009

Вы можете попробовать AliasMatch:

AliasMatch ^/(robots\.txt|favicon.ico)$ /home/sites/site1/www/mainsite_alias$0
0 голосов
/ 07 октября 2009

Я использую это

<VirtualHost *:80>
    ServerAdmin email_at_isp
    DocumentRoot "C:/apache/htdocs"  
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin admin_at_server_one.com
    DocumentRoot "C:/apache/htdocs/server_one.com"
    ServerName server_one.com
    ErrorLog "logs/server_one.com-error.log"
    CustomLog "logs/server_one.com-access.log" common
</VirtualHost>

и я продолжаю переписывать скрипты в .htaccess в корне [C: / apache / htdocs] Надеюсь, это поможет как-то, если не раздражает. лол

...