Перенаправление несуществующих динамических папок виртуального хоста с Apache - PullRequest
0 голосов
/ 24 декабря 2011

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

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

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost

        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 Ответ

1 голос
/ 14 марта 2012

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

Сразу после переписывания правила пропустите 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]
...