2011-12-23 3 views
0

Можно ли перенаправить на определенный URL-адрес, если каталог для виртуального хоста не существует? У меня есть установка VirtualHost ниже, которая позволяет мне размещать домен, просто создавая папку и указывая DNS на мой сервер.Перенаправить несуществующие папки динамического виртуального хоста с Apache

Вот моя конфигурация для VirtualHost

<VirtualHost *:80> 
     ServerAdmin [email protected] 

     RewriteEngine On 
     RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] 
     RewriteRule ^(.*) http://%1/ [R=301,L] 

     VirtualDocumentRoot /var/www/%0 
     <Directory /var/www/%0> 
       Options Indexes FollowSymLinks MultiViews 
       AllowOverride None 
       Order allow,deny 
       allow from all 
     </Directory> 

     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
     <Directory "/usr/lib/cgi-bin"> 
       AllowOverride None 
       Options ExecCGI -MultiViews +SymLinksIfOwnerMatch 
       Order allow,deny 
       Allow from all 
     </Directory> 

     ErrorLog /var/log/apache2/error.log 

     # Possible values include: debug, info, notice, warn, error, crit, 
     # alert, emerg. 
     LogLevel warn 

     CustomLog /var/log/apache2/access.log combined 
     ServerSignature On 

    Alias /doc/ "/usr/share/doc/" 
    <Directory "/usr/share/doc/"> 
     Options Indexes MultiViews FollowSymLinks 
     AllowOverride None 
     Order deny,allow 
     Deny from all 
     Allow from 127.0.0.0/255.0.0.0 ::1/128 
    </Directory> 
</VirtualHost> 

ответ

1

Вы можете управлять им с помощью правила перезаписи.

Только после того, как вы переписывания правило, чтобы пропустить WWW:

RewriteCond %{HTTP_HOST} ^(.*)$ 
RewriteCond /var/www/%1 !-d 
# I think just /var/www/%{HTTP_HOST} works :| 
RewriteRule .* http://example.com/nonexistant.php/$0 [L,R] 
Смежные вопросы