Apache2, ErrorDocument глобально для всех вирт хостов

Тема в разделе "Администрирование серверов", создана пользователем Crees, 28 янв 2010.

Статус темы:
Закрыта.
Модераторы: mefish, stooper
  1. Crees

    Crees Постоялец

    Регистр.:
    4 май 2008
    Сообщения:
    143
    Симпатии:
    13
    Не думал что на этом зависну, но не могу придумать как? Есть много вхостов, каждому из них заливать собственные html файлы с ошибками и добавлять директивы для всех вхотов - бред.
    Писал ErrorDocument 404 "/usr/share/apache2/error/somefile.html" - не катит.

    Как же тогда задать глобально для всех виртхостов 404 = некой html странице моей.
     
  2. porsche2

    porsche2

    Регистр.:
    18 ноя 2007
    Сообщения:
    667
    Симпатии:
    210
    а если так

    ErrorDocument 404 /usr/share/apache2/error/somefile.html
     
  3. Crees

    Crees Постоялец

    Регистр.:
    4 май 2008
    Сообщения:
    143
    Симпатии:
    13
    Да, так я тоже писал, не помогало. Еще думал что проблема в правах доступа, прописал на каталог с файлами ошибок внутри юзера и группу апача - не помогло. Глобально ведь как то делается, я не верю что каждому закидывать файлик нужно будет)
     
  4. porsche2

    porsche2

    Регистр.:
    18 ноя 2007
    Сообщения:
    667
    Симпатии:
    210
    Выдержка из конфига апача :)
    Код:
    # Customizable error responses come in three flavors:
    # 1) plain text 2) local redirects 3) external redirects
    #
    # Some examples:
    #ErrorDocument 500 "The server made a boo boo."
    #ErrorDocument 404 /missing.html
    #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
    #ErrorDocument 402 http://www.example.com/subscription_info.html
    #
    #
    # Putting this all together, we can internationalize error responses.
    #
    # We use Alias to redirect any /error/HTTP_<error>.html.var response to
    # our collection of by-error message multi-language collections.  We use 
    # includes to substitute the appropriate text.
    #
    # You can modify the messages' appearance without changing any of the
    # default HTTP_<error>.html.var files by adding the line:
    #
    #   Alias /error/include/ "/your/include/path/"
    #
    # which allows you to create your own set of files by starting with the
    # /var/www/error/include/ files and
    # copying them to /your/include/path/, even on a per-VirtualHost basis.
    #
    Alias /error/ "/var/www/error/"
    <IfModule mod_negotiation.c>
    <IfModule mod_include.c>
        <Directory "/var/www/error">
            AllowOverride None
            Options IncludesNoExec
            AddOutputFilter Includes html
            AddHandler type-map var
            Order allow,deny
            Allow from all
            LanguagePriority en es de fr
            ForceLanguagePriority Prefer Fallback
        </Directory>
    #    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
    #    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
    #    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
    #    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
    #    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
    #    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
    #    ErrorDocument 410 /error/HTTP_GONE.html.var
    #    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
    #    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
    #    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
    #    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
    #    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
    #    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
    #    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
    #    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
    #    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
    #    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
    </IfModule>
    </IfModule>
    #
    
    Это все что вам нужно для глобального еррора
    и перевод, если так проще :)
    Код:
    # Существует три типа настроек для конфигурируемых сообщений об ошибках:
    # 1) простой текст 2) местные ссылки 3) внешние пересылки
    #
    # Некоторые примеры:
    #
    #ErrorDocument 500 "The server made a boo boo."
    #ErrorDocument 404 /missing.html
    #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
    #ErrorDocument 402 http://www.example.com/subscription_info.html
    #
    # Собрав все это воедино, мы можем мультилингвизировать сообщения об ошибках.
    #
    # Мы используем Alias чтобы перенаправлять сообщения 
    # "/error/HTTP_<error>.html.var" на наборы сообщений на разных языках
    # (собранных по типу ошибки). Мы используем "includes" для вставления 
    # необходимого текста.
    #
    #   Alias /error/include/ "/your/include/path/"
    #
    #
    # Можно изменить вид сообщения, не меняя никаких дефолтных 
    # "HTTP_<error>.html.var" файлов, добавив строку;
    #
    #   Alias /error/include/ "/your/include/path/"
    #
    # которая позволяет вам создать свой набор файлов, начав с файлов
    # "E:/Apache2/error/include/"  и копируя их в "/your/include/path/",
    # в том числе и для отдельных VirtualHost.
    #
    #
    <IfModule mod_negotiation.c>
    <IfModule mod_include.c>
        Alias /error/ "E:/Apache2/error/"
        <Directory "E:/Apache2/error">
            AllowOverride None
            Options IncludesNoExec
            AddOutputFilter Includes html
            AddHandler type-map var
            Order allow,deny
            Allow from all
            LanguagePriority en es de fr
            ForceLanguagePriority Prefer Fallback
        </Directory>
        ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
        ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
        ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
        ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
        ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
        ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
        ErrorDocument 410 /error/HTTP_GONE.html.var
        ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
        ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
        ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
        ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
        ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var
        ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
        ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
        ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
        ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
        ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
    </IfModule>
    </IfModule>
    # 
    

    Перейти по ссылке
     
Статус темы:
Закрыта.