These rewrite rules can be used if you don't have direct access to alter the virtual host configuration, which is common in a shared hosting setup. The file ".htaccess_root" is included in the installation package of your eZ Publish installation. In order to activate these rewrite rules in your hosted environment, you must change the name of the file to ".htaccess" and keep in the same folder as the original ".htaccess_root" file.

.htaccess file example

Please find an example of the ".htaccess" rewrite rules below:

# Copy this file to a new file called .htaccess in your eZ Publish root
# to secure your installation by turning on .htaccess based virtual host mode.

# Environment.
# Possible values: "prod" and "dev" out-of-the-box, other values possible with proper configuration
# Defaults to "prod" if omitted
SetEnv ENVIRONMENT "prod"

# Whether to use Symfony's ApcClassLoader.
# Possible values: 0 or 1
# Defaults to 0 if omitted
#SetEnv USE_APC_CLASSLOADER 0

# Prefix used when USE_APC_CLASSLOADER is set to 1.
# Use a unique prefix in order to prevent cache key conflicts
# with other applications also using APC.
# Defaults to "ezpublish" if omitted
#SetEnv APC_CLASSLOADER_PREFIX "ezpublish"

# Whether to use debugging.
# Possible values: 0 or 1
# Defaults to 0 if omitted, unless ENVIRONMENT is set to: "dev"
#SetEnv USE_DEBUGGING 0

# Whether to use Symfony's HTTP Caching.
# Disable it if you are using an external reverse proxy (e.g. Varnish)
# Possible values: 0 or 1
# Defaults to 1 if omitted, unless ENVIRONMENT is set to: "dev"
#SetEnv USE_HTTP_CACHE 1

# Defines the proxies to trust.
# Separate entries by a comma
# Example: "proxy1.example.com,proxy2.example.org"
# By default, no trusted proxies are set
#SetEnv TRUSTED_PROXIES "127.0.0.1"
 
DirectoryIndex index.php
 
RewriteEngine On
RewriteRule ^_internal/ - [R=403,L]
RewriteRule ^api/ index_rest.php [L]
RewriteRule ^index_rest\.php - [L]
RewriteRule ^([^/]+/)?content/treemenu.* index_treemenu\.php [L]
RewriteRule ^var/([^/]+/)?storage/images(-versioned)?/.* - [L]
RewriteRule ^var/([^/]+/)?cache/(texttoimage|public)/.* - [L]
RewriteRule ^/design/[^/]+/(stylesheets|images|javascript|fonts)/.* - [L]
RewriteRule ^share/icons/.* - [L]
RewriteRule ^extension/[^/]+/design/[^/]+/(stylesheets|flash|images|lib|javascripts?)/.* - [L]
RewriteRule ^packages/styles/.+/(stylesheets|images|javascript)/[^/]+/.* - [L]
RewriteRule ^packages/styles/.+/thumbnail/.* - [L]
RewriteRule ^var/storage/packages/.* - [L]
 
# Makes it possible to placed your favicon at the root of your
# eZ Publish instance. It will then be served directly.
RewriteRule ^favicon\.ico - [L]
# Uncomment the line below if you want you favicon be served from the standard design.
# You can customize the path to favicon.ico by replacing design/standard/images/favicon.ico
# by the adequate path.
#RewriteRule ^favicon\.ico /design/standard/images/favicon\.ico [L]
RewriteRule ^design/standard/images/favicon\.ico - [L]
 
# Give direct access to robots.txt for use by crawlers (Google, Bing, Spammers..)
RewriteRule ^robots\.txt - [L]
 
# Uncomment the following lines when using popup style debug.
# RewriteRule ^var/cache/debug\.html.* - [L]
# RewriteRule ^var/[^/]+/cache/debug\.html.* - [L]
 
# Platform for Privacy Preferences Project ( P3P ) related files for Internet Explorer
# More info here : http://en.wikipedia.org/wiki/P3p
RewriteRule ^w3c/p3p\.xml - [L]
 
RewriteRule .* index\.php

.htaccess_root file example

DirectoryIndex index.php

RewriteEngine On

# skip "real" requests
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [QSA,L]

# CVE-2012-6432
# Uncomment if you have Symfony v2.1.5 or superior
# eZ Publish 5.0 EE is shipped with Symfony v2.1.4
RewriteRule ^/_internal - [R=403,L]

# Uncomment in FastCGI mode or when using PHP-FPM, to get basic auth working.
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# v1 rest API is on Legacy
RewriteRule ^/api/[^/]+/v1/ /index_rest.php [L]

# If using cluster, uncomment the following two lines:
#RewriteRule ^/var/([^/]+/)?storage/images(-versioned)?/.* /index_cluster.php [L]
#RewriteRule ^/var/([^/]+/)?cache/(texttoimage|public)/.* /index_cluster.php [L]

RewriteRule ^/var/([^/]+/)?storage/images(-versioned)?/.* - [L]
RewriteRule ^/var/([^/]+/)?cache/(texttoimage|public)/.* - [L]
RewriteRule ^/design/[^/]+/(stylesheets|images|javascript|fonts)/.* - [L]
RewriteRule ^/share/icons/.* - [L]
RewriteRule ^/extension/[^/]+/design/[^/]+/(stylesheets|flash|images|lib|javascripts?)/.* - [L]
RewriteRule ^/packages/styles/.+/(stylesheets|images|javascript)/[^/]+/.* - [L]
RewriteRule ^/packages/styles/.+/thumbnail/.* - [L]
RewriteRule ^/var/storage/packages/.* - [L]

# Touch icon, site bookmark tile and favicon:
RewriteRule ^/favicon.*\.(ico|png)$ - [L]

# Uncomment the line below if you want you favicon be served
# from the standard design. You can customize the path to
# favicon.ico by changing /design/standard/images/favicon\.ico
#RewriteRule ^/favicon\.ico /design/standard/images/favicon.ico [L]
RewriteRule ^/design/standard/images/favicon\.ico - [L]

# Give direct access to robots.txt for use by crawlers (Google,
# Bing, Spammers..)
RewriteRule ^/robots\.txt - [L]

# Platform for Privacy Preferences Project ( P3P ) related files
# for Internet Explorer
# More info here : http://en.wikipedia.org/wiki/P3p
RewriteRule ^/w3c/p3p\.xml - [L]

# Uncomment the following lines when using popup style debug in legacy
#RewriteRule ^/var/([^/]+/)?cache/debug\.html.* - [L]

# Following rule is needed to correctly display assets from eZ Publish5 / Symfony bundles
RewriteRule ^/bundles/ - [L]

# Additional Assetic rules for eZ Publish 5.1 / 2013.4 and higher:
RewriteRule ^/css/.*\.css - [L]
RewriteRule ^/js/.*\.js - [L]
RewriteRule ^/img/.*(png|jpg) - [L]

RewriteRule .* index.php [QSA,L]

 

 

For instructions on how to set custom environments please refer to the Installing eZ Publish on a Linux-UNIX based system documentation page, under "Defining the desired environment".