Created
May 18, 2017 12:36
-
-
Save tulik/31c20e23ae2693f1b79c52a684831da8 to your computer and use it in GitHub Desktop.
Symfony: htaccess to hide app.php or app_dev.php
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| DirectoryIndex app.php | |
| #DirectoryIndex app_dev.php | |
| <IfModule mod_rewrite.c> | |
| RewriteEngine On | |
| # Redirect to URI without front controller to prevent duplicate content | |
| # (with and without `/app.php`). Only do this redirect on the initial | |
| # rewrite by Apache and not on subsequent cycles. Otherwise we would get an | |
| # endless redirect loop (request -> rewrite to front controller -> | |
| # redirect -> request -> ...). | |
| # So in case you get a "too many redirects" error or you always get redirected | |
| # to the startpage because your Apache does not expose the REDIRECT_STATUS | |
| # environment variable, you have 2 choices: | |
| # - disable this feature by commenting the following 2 lines or | |
| # - use Apache >= 2.3.9 and replace all L flags by END flags and remove the | |
| # following RewriteCond (best solution) | |
| RewriteCond %{ENV:REDIRECT_STATUS} ^$ | |
| #RewriteRule ^app_dev\.php(/(.*)|$) %{CONTEXT_PREFIX}/$2 [R=301,L] | |
| RewriteRule ^app\.php(/(.*)|$) %{CONTEXT_PREFIX}/$2 [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] | |
| RewriteCond %{REQUEST_FILENAME} -f | |
| #RewriteRule ^(.*)$ app_dev.php [QSA,L] | |
| RewriteRule ^(.*)$ app.php [QSA,L] | |
| # The following rewrites all other queries to the front controller. The | |
| # condition ensures that if you are using Apache aliases to do mass virtual | |
| # hosting, the base path will be prepended to allow proper resolution of the | |
| # app.php file; it will work in non-aliased environments as well, providing | |
| # a safe, one-size fits all solution. | |
| RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$ | |
| RewriteRule ^(.*) - [E=BASE:%1] | |
| #RewriteRule .? %{ENV:BASE}app_dev.php [L] | |
| RewriteRule .? %{ENV:BASE}app.php [L] | |
| </IfModule> | |
| <IfModule !mod_rewrite.c> | |
| <IfModule mod_alias.c> | |
| # When mod_rewrite is not available, we instruct a temporary redirect of | |
| # the startpage to the front controller explicitly so that the website | |
| # and the generated links can still be used. | |
| #RedirectMatch 302 ^/$ /app_dev.php/ | |
| RedirectMatch 302 ^/$ /app.php/ | |
| # RedirectTemp cannot be used instead | |
| </IfModule> | |
| </IfModule> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment