Enable index.php-less URLs

Since ownCloud 9.0.3 you need to explicitly configure and enable index.php-less URLs (e.g. https://example.com/apps/files/ instead of https://example.com/index.php/apps/files/). The following documentation provides the needed steps to configure this for the Apache Web server. These steps are not necessary when using nginx as a web server because it is already enabled in the nginx Example Configurations.

Prerequisites

Before being able to use index.php-less URLs you need to enable the mod_rewrite and mod_env Apache modules. Furthermore a configured AllowOverride All directive within the vhost of your Web server is needed. Please have a look at the Apache manual for how to enable and configure these.

Furthermore these instructions are only working when using Apache together with the mod_php Apache module for PHP. Other modules like php-fpm or mod_fastcgi are unsupported.

Configuration steps

The first step is to configure the overwrite.cli.url and htaccess.RewriteBase config.php options (See Config.php Parameters). If you’re accessing your ownCloud instance via https://example.com/ the following two options need to be added / configured:

'overwrite.cli.url' => 'https://example.com',
'htaccess.RewriteBase' => '/',

If the instance is accessed via https://example.com/owncloud the following configuration is needed:

'overwrite.cli.url' => 'https://example.com/owncloud',
'htaccess.RewriteBase' => '/owncloud',

As a second step ownCloud needs to enable index.php-less URLs. This is done:

  • during the next update of your ownCloud instance
  • by manually running the occ command occ maintenance:update:htaccess (See Using the occ Command)

Afterwards your instance should have index.php-less URLs enabled.

Troubleshooting

If accessing your ownCloud installation fails after following these instructions and you see messages like this in your ownCloud log:

The requested uri(\\/login) cannot be processed by the script '\\/owncloud\\/index.php'

make sure that you have configured the two config.php options listed above correctly.