# Elgg htaccess directives # Copyright Curverider Ltd 2008-2009 # License http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 # Link http://elgg.org/ <IfModule !mod_rewrite.c> # ugly ugly hack to detect missing mod_rewrite # RedirectMatch must be to an absolute destination, so forces 500 error... ErrorDocument 500 "Elgg error: Apache does not have mod_rewrite loaded. Please check your Apache setup." RedirectMatch 302 .* index.php </IfModule> <Files "htaccess_dist"> order allow,deny deny from all </Files> # Don't listing directory Options -Indexes # Follow symbolic links Options +FollowSymLinks # Default handler DirectoryIndex index.php # Turn on expiry <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 10 years" </IfModule> # php 4, apache 1.x <IfModule mod_php4.c> ErrorDocument 500 "Elgg error: Elgg does not support PHP 4." RedirectMatch 302 .* index.php </IfModule> # php 4, apache 2 <IfModule sapi_apache2.c> ErrorDocument 500 "Elgg error: Elgg does not support PHP 4." RedirectMatch 302 .* index.php </IfModule> # php 5, apache 1 and 2 <IfModule mod_php5.c> # default memory limit to 64Mb php_value memory_limit 64M # to make sure register global is off php_value register_globals 0 # max post size to 8Mb php_value post_max_size 8388608 # upload size limit to 5Mb php_value upload_max_filesize 5242880 # hide errors, enable only if debug enabled php_value display_errors 0 </IfModule> # Turn on mod_gzip if available <IfModule mod_gzip.c> mod_gzip_on yes mod_gzip_dechunk yes mod_gzip_keep_workfiles No mod_gzip_minimum_file_size 1000 mod_gzip_maximum_file_size 1000000 mod_gzip_maximum_inmem_size 1000000 mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/javascript$ mod_gzip_item_include mime ^application/x-javascript$ # Exclude old browsers and images since IE has trouble with this mod_gzip_item_exclude reqheader "User-Agent: .*Mozilla/4\..*\[" mod_gzip_item_exclude mime ^image/.* </IfModule> ## Apache2 deflate support if available ## ## Important note: mod_headers is required for correct functioning across proxies. ## <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.[0678] no-gzip BrowserMatch \bMSIE !no-gzip <IfModule mod_headers.c> Header append Vary User-Agent env=!dont-vary </IfModule> # The following is to disable compression for actions. The reason being is that these # may offer direct downloads which (since the initial request comes in as text/html and headers # get changed in the script) get double compressed and become unusable when downloaded by IE. SetEnvIfNoCase Request_URI action\/* no-gzip dont-vary SetEnvIfNoCase Request_URI actions\/* no-gzip dont-vary </IfModule> # Configure ETags <FilesMatch "\.(jpg|jpeg|gif|png|mp3|flv|mov|avi|3pg|html|htm|swf)$"> FileETag MTime Size </FilesMatch> <IfModule mod_rewrite.c> RewriteEngine on # If Elgg is in a subdirectory on your site, you might need to add a RewriteBase line # containing the path from your site root to elgg's root. e.g. If your site is # http://example.com/ and Elgg is in http://example.com/sites/elgg/, you might need # #RewriteBase /sites/elgg/ # # here, only without the # in front. # # If you're not running Elgg in a subdirectory on your site, but still getting lots # of 404 errors beyond the front page, you could instead try: # #RewriteBase / RewriteRule ^action\/([A-Za-z0-9\_\-\/]+)$ engine/handlers/action_handler.php?action=$1 RewriteRule ^services\/api\/([A-Za-z0-9\_\-]+)\/(.*)$ engine/handlers/service_handler.php?handler=$1&request=$2 RewriteRule ^export\/([A-Za-z]+)\/([0-9]+)$ services/export/handler.php?view=$1&guid=$2 RewriteRule ^export\/([A-Za-z]+)\/([0-9]+)\/$ services/export/handler.php?view=$1&guid=$2 RewriteRule ^export\/([A-Za-z]+)\/([0-9]+)\/([A-Za-z]+)\/([A-Za-z0-9\_]+)\/$ services/export/handler.php?view=$1&guid=$2&type=$3&idname=$4 RewriteRule ^\_css\/css\.css$ _css/css.php RewriteRule ^pg\/([A-Za-z0-9\_\-]+)\/(.*)$ engine/handlers/pagehandler.php?handler=$1&page=$2 RewriteRule ^pg\/([A-Za-z0-9\_\-]+)$ engine/handlers/pagehandler.php?handler=$1 RewriteRule xml-rpc.php engine/handlers/xml-rpc_handler.php RewriteRule mt/mt-xmlrpc.cgi engine/handlers/xml-rpc_handler.php RewriteRule ^tag/(.+)/?$ engine/handlers/pagehandler.php?handler=search&page=$1 </IfModule>