# Chronicle .htaccess file for Apache # Set Application Environment # production - hide errors, enable caching and aggregation (default) # development - show errors, log debug info, no caching or aggregation #SetEnv APPLICATION_ENV development # Configure PHP DirectoryIndex index.php # For information on the meaning of these settings, please see: # http://www.php.net/manual/en/ini.list.php # These settings are required for Perforce Chronicle php_value magic_quotes_gpc false php_value magic_quotes_runtime false php_value short_open_tag true # These settings govern how large file uploads can be # - The post_max_size value must be larger than upload_max_filesize # - The memory_limit value must be larger than post_max_size php_value upload_max_filesize 8M php_value post_max_size 16M # If PHP is not enabled, make default page point to warning DirectoryIndex nophp.html # Disable MultiViews as it interferes with rewrite # Disable directory listings for the potential security benefit Options -MultiViews -Indexes # Configure Rewrite Engine RewriteEngine On # Strip branch component (e.g. '-dev-') from URLs - this is # needed for static resources (PHP still sees the original path). RewriteRule ^-[^/]+-/?(.*)$ $1 # Pass through requests for files in safe locations RewriteRule ^application/[^/]+/resources/.*$ - [L] RewriteRule ^data/sites/[^/]+/resources/.*$ - [L] RewriteRule ^data/resources/.*$ - [L] RewriteRule ^sites/[^/]+/modules/[^/]+/resources/.*$ - [L] RewriteRule ^sites/[^/]+/themes/.*$ - [L] RewriteRule ^docs/.*$ - [L] RewriteRule ^favicon\.ico$ - [L] # Externally redirect requests for index.php to '/' # (otherwise index.php makes it into the baseUrl) RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^index\.php(/(.*))?$ /$2 [L,R=permanent] # Rewrite all other requests to application RewriteRule ^.*$ index.php [L] # Without PHP, rewrite all requests to warning page RewriteRule ^.*$ nophp.html [L] # Configure Static Resource Cache Headers ExpiresActive On ExpiresDefault "access plus 12 hours" # In order for the cache headers to apply to all static resources under # data/resources, data/sites//resources, sites//themes/, # etc. we apply our 12 hour timeout to anything that isn't a php script. # The php scripts will quite possibly provide expiration headers on their # own but we didn't want them to have to fight this setting. ExpiresActive Off # Enable apache based gzip'ing of text output AddOutputFilterByType DEFLATE text/html text/plain text/xml # By default apache ETags include the inode which makes them fail in # a horizontally scaled environment; we remove inode to fix this and # to make yslow a happier camper. FileETag MTime Size # Disable mod_cache as it serves out the wrong content for dynamic pages. # Our mod_rewrite rules direct all dynamic requests to index.php, which # is incompatible with mod_cache's lookups. SetEnv no-cache # Headers for Compressed CSS/JS AddType text/css .cssgz AddType text/javascript .jsgz AddEncoding x-gzip .cssgz .jsgz