|
|
|
@@ -0,0 +1,55 @@ |
|
|
|
# Use the front controller as index file. It serves as a fallback solution when |
|
|
|
# every other rewrite/redirect fails (e.g. in case of a non-standard installation). |
|
|
|
DirectoryIndex index.php |
|
|
|
|
|
|
|
# By default, Apache does not evaluate symbolic links if you did not enable this |
|
|
|
# feature in your server configuration. Uncomment the following line if you |
|
|
|
# install assets as symlinks or if you experience problems related to symlinks |
|
|
|
# when compiling LESS/Sass/CoffeeScript assets. |
|
|
|
# Options +FollowSymlinks |
|
|
|
|
|
|
|
# Disabling MultiViews prevents unwanted negotiation, e.g. "/index" should not resolve |
|
|
|
# to the front controller "/index.php" but be rewritten to "/index.php/index". |
|
|
|
<IfModule mod_negotiation.c> |
|
|
|
Options -MultiViews |
|
|
|
</IfModule> |
|
|
|
|
|
|
|
<IfModule mod_rewrite.c> |
|
|
|
RewriteEngine On |
|
|
|
|
|
|
|
# Determine the RewriteBase automatically and set it as environment variable. |
|
|
|
# If you are using Apache aliases or something similar, chances are that the |
|
|
|
# temporary variable is not set correctly and the redirect will fail. Set this |
|
|
|
# variable manually if the problem occurs. |
|
|
|
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$ |
|
|
|
RewriteRule .* - [E=BASE:%1] |
|
|
|
|
|
|
|
# Sets the HTTP_AUTHORIZATION header removed by Apache |
|
|
|
RewriteCond %{HTTP:Authorization} .+ |
|
|
|
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0] |
|
|
|
|
|
|
|
# Redirect to URI without front controller to prevent duplicate content |
|
|
|
# (with and without `/index.php`). Only do this redirect on the initial |
|
|
|
# rewrite by Apache and not on subsequent cycles. Otherwise we would get an |
|
|
|
# endless redirect loop (target is relative and exists in the URL). |
|
|
|
RewriteCond %{ENV:REDIRECT_STATUS} ="" |
|
|
|
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] |
|
|
|
|
|
|
|
# If the requested filename exists, simply serve it. |
|
|
|
# We only want to let Apache serve files and not directories. |
|
|
|
RewriteCond %{REQUEST_FILENAME} -f |
|
|
|
RewriteRule ^ - [L] |
|
|
|
|
|
|
|
# Rewrite all other queries to the front controller. |
|
|
|
RewriteRule ^ %{ENV:BASE}/index.php [L] |
|
|
|
</IfModule> |
|
|
|
|
|
|
|
<IfModule !mod_rewrite.c> |
|
|
|
<IfModule mod_alias.c> |
|
|
|
# When mod_rewrite is not available, we instruct a temporary redirect of |
|
|
|
# the start page to the front controller explicitly so that the website |
|
|
|
# and the generated links can still be used. |
|
|
|
RedirectMatch 307 ^/$ /index.php/ |
|
|
|
# RedirectTemp cannot be used instead |
|
|
|
</IfModule> |
|
|
|
</IfModule> |