ServerTokens OS
ServerRoot "/usr/lib/apache2"

PidFile "/tmp/WebKit/httpd.pid"
ScoreBoardFile "/tmp/WebKit/httpd.scoreboard"

Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15

MinSpareServers 1
MaxSpareServers 5
StartServers 1
MaxClients 150
MaxRequestsPerChild 100000

LoadModule mpm_prefork_module   modules/mod_mpm_prefork.so
LoadModule authz_core_module    modules/mod_authz_core.so
LoadModule authz_host_module    modules/mod_authz_host.so
LoadModule include_module       modules/mod_include.so
LoadModule headers_module       modules/mod_headers.so
LoadModule mime_module          modules/mod_mime.so
LoadModule negotiation_module   modules/mod_negotiation.so
LoadModule actions_module       modules/mod_actions.so
LoadModule alias_module         modules/mod_alias.so
LoadModule rewrite_module       modules/mod_rewrite.so
LoadModule unixd_module         modules/mod_unixd.so
LoadModule cgi_module           modules/mod_cgi.so
#LoadModule access_compat_module modules/mod_access_compat.so
LoadModule log_config_module    modules/mod_log_config.so
#LoadModule imagemap_module      modules/mod_imagemap.so
LoadModule ssl_module           modules/mod_ssl.so
LoadModule asis_module          modules/mod_asis.so


ServerName 127.0.0.1

<Directory />
    Options Indexes FollowSymLinks MultiViews ExecCGI Includes
    AllowOverride All
    Require all granted
    CGIPassAuth On
</Directory>

AccessFileName .htaccess

<Files ~ "^\.([Hh][Tt]|[Dd][Ss]_[Ss])">
    Require all denied
</Files>

UseCanonicalName On
HostnameLookups Off

LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
ErrorLog /tmp/WebKit/error_log

ServerSignature On

AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
AddCharset Big5         .Big5    .big5
AddCharset WINDOWS-1251 .cp-1251
AddCharset CP866        .cp866
AddCharset ISO-8859-5   .iso-ru
AddCharset KOI8-R       .koi8-r
AddCharset UCS-2        .ucs2
AddCharset UCS-4        .ucs4
AddCharset UTF-8        .utf8

<IfModule mod_negotiation.c>
    LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
</IfModule>

AddType application/x-tar .tgz

AddEncoding x-compress .Z
AddEncoding x-gzip .gz .tgz

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl

AddHandler cgi-script .cgi .pl .py

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

AddHandler send-as-is asis

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} ^TRACE
    RewriteRule .* - [F]
</IfModule>

<VirtualHost *:8443>
    ServerName 127.0.0.1
    SSLEngine On
</VirtualHost>

#
# Apple-specific filesystem protection.
#
<Files "rsrc">
    Require all denied
</Files>

<Directory  ~ ".*\.\.namedfork">
    Require all denied
</Directory>

