3bce1b20fe
When `DirectorySlash off` is set then Apache will not lookup folders anymore. This is required for example when we use the rewrite directives on an existing path such as `/core/search`. By default Apache would load `/core/search/` instead `/core/search` so the redirect would fail here. This leads however to the problem that URLs such as `localhost/owncloud` would not load anymore while `localhost/owncloud/` would. This has caused problems such as https://github.com/owncloud/core/pull/21015 With this change we add the `DirectorySlash off` directive only when the `.htaccess` is writable to the dynamic part of it. This would also make `localhost/owncloud` work again as it would trigger the 404 directive which triggers the redirect in base.php.
77 lines
2.8 KiB
ApacheConf
77 lines
2.8 KiB
ApacheConf
# Version: 9.0.0
|
|
<IfModule mod_headers.c>
|
|
<IfModule mod_fcgid.c>
|
|
<IfModule mod_setenvif.c>
|
|
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
|
|
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
|
|
</IfModule>
|
|
</IfModule>
|
|
|
|
<IfModule mod_env.c>
|
|
# Add security and privacy related headers
|
|
Header set X-Content-Type-Options "nosniff"
|
|
Header set X-XSS-Protection "1; mode=block"
|
|
Header set X-Robots-Tag "none"
|
|
Header set X-Frame-Options "SAMEORIGIN"
|
|
SetEnv modHeadersAvailable true
|
|
|
|
# Add CSP header if not set, used for static resources
|
|
Header append Content-Security-Policy ""
|
|
Header edit Content-Security-Policy "^$" "default-src 'none'; style-src 'self' 'unsafe-inline'; script-src 'self'"
|
|
</IfModule>
|
|
|
|
# Add cache control for CSS and JS files
|
|
<FilesMatch "\.(css|js)$">
|
|
Header set Cache-Control "max-age=7200, public"
|
|
</FilesMatch>
|
|
</IfModule>
|
|
<IfModule mod_php5.c>
|
|
php_value upload_max_filesize 513M
|
|
php_value post_max_size 513M
|
|
php_value memory_limit 512M
|
|
php_value mbstring.func_overload 0
|
|
php_value always_populate_raw_post_data -1
|
|
php_value default_charset 'UTF-8'
|
|
php_value output_buffering 0
|
|
<IfModule mod_env.c>
|
|
SetEnv htaccessWorking true
|
|
</IfModule>
|
|
</IfModule>
|
|
<IfModule mod_rewrite.c>
|
|
RewriteEngine on
|
|
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
|
RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
|
|
RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
|
|
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
|
|
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
|
|
RewriteRule ^remote/(.*) remote.php [QSA,L]
|
|
RewriteRule ^(build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
|
|
RewriteRule ^(\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
|
|
|
|
# Rewrite rules for `front_controller_active`
|
|
Options -MultiViews
|
|
RewriteRule ^core/js/oc.js$ index.php/core/js/oc.js [PT,E=PATH_INFO:$1]
|
|
RewriteRule ^core/preview.png$ index.php/core/preview.png [PT,E=PATH_INFO:$1]
|
|
RewriteCond %{REQUEST_FILENAME} !\.(css|js|svg|gif|png|html|ttf|woff)$
|
|
RewriteCond %{REQUEST_FILENAME} !core/img/favicon.ico$
|
|
RewriteCond %{REQUEST_FILENAME} !/remote.php
|
|
RewriteCond %{REQUEST_FILENAME} !/public.php
|
|
RewriteCond %{REQUEST_FILENAME} !/cron.php
|
|
RewriteCond %{REQUEST_FILENAME} !/core/ajax/update.php
|
|
RewriteCond %{REQUEST_FILENAME} !/status.php
|
|
RewriteCond %{REQUEST_FILENAME} !/ocs/v1.php
|
|
RewriteCond %{REQUEST_FILENAME} !/ocs/v2.php
|
|
RewriteRule .* index.php [PT,E=PATH_INFO:$1]
|
|
</IfModule>
|
|
<IfModule mod_mime.c>
|
|
AddType image/svg+xml svg svgz
|
|
AddEncoding gzip svgz
|
|
</IfModule>
|
|
<IfModule mod_dir.c>
|
|
DirectoryIndex index.php index.html
|
|
</IfModule>
|
|
AddDefaultCharset utf-8
|
|
Options -Indexes
|
|
<IfModule pagespeed_module>
|
|
ModPagespeed Off
|
|
</IfModule>
|