diff options
Diffstat (limited to 'htaccess_dist')
| -rw-r--r-- | htaccess_dist | 90 |
1 files changed, 62 insertions, 28 deletions
diff --git a/htaccess_dist b/htaccess_dist index fa0714cf1..44d129475 100644 --- a/htaccess_dist +++ b/htaccess_dist @@ -1,14 +1,11 @@ # 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/ <Files "htaccess_dist"> order allow,deny deny from all </Files> -# Don't listing directory +# Don't allow listing directories Options -Indexes # Follow symbolic links @@ -17,26 +14,45 @@ Options +FollowSymLinks # Default handler DirectoryIndex index.php -# Turn on expiry + +############################ +# BROWSER CACHING + +# The expires module controls the Expires and Cache-Control headers. Elgg sets +# these for dynamically generated files so this is just for static files. <IfModule mod_expires.c> ExpiresActive On - ExpiresDefault "access plus 10 years" + ExpiresDefault "access plus 1 year" </IfModule> -# php 5, apache 1 and 2 +# Conditional requests are controlled through Last-Modified and ETag headers. +# Elgg sets these on dynamically generated cacheable files so this is just for +# static files. Note: Apache sends Last-Modified by default on static files so +# I don't think we need to be sending ETag for these files. +<FilesMatch "\.(jpg|jpeg|gif|png|mp3|flv|mov|avi|3pg|html|htm|swf|js|css|ico)$"> + FileETag MTime Size +</FilesMatch> + + +############################ +# PHP SETTINGS <IfModule mod_php5.c> - # default memory limit to 64Mb + # limit the maximum memory consumed by the php script to 64 MB php_value memory_limit 64M - # to make sure register global is off + # register_globals is deprecated as of PHP 5.3.0 - disable it for security reasons. php_value register_globals 0 - # max post size to 8Mb + # post_max_size is the maximum size of ALL the data that is POST'ed to php at a time (8 MB) php_value post_max_size 8388608 - # upload size limit to 5Mb + # upload_max_filesize is the maximum size of a single uploaded file (5 MB) php_value upload_max_filesize 5242880 - # hide errors, enable only if debug enabled + # on development servers, set to 1 to display errors. Set to 0 on production servers. php_value display_errors 0 </IfModule> + +############################ +# COMPRESSION + # Turn on mod_gzip if available <IfModule mod_gzip.c> mod_gzip_on yes @@ -75,10 +91,9 @@ DirectoryIndex index.php </IfModule> -# Configure ETags -<FilesMatch "\.(jpg|jpeg|gif|png|mp3|flv|mov|avi|3pg|html|htm|swf)$"> - FileETag MTime Size -</FilesMatch> + +############################ +# REWRITE RULES <IfModule mod_rewrite.c> @@ -97,25 +112,44 @@ RewriteEngine on # #RewriteBase / -RewriteRule ^action\/([A-Za-z0-9\_\-\/]+)$ engine/handlers/action_handler.php?action=$1&%{QUERY_STRING} -RewriteRule ^services\/api\/([A-Za-z0-9\_\-]+)\/(.*)$ engine/handlers/service_handler.php?handler=$1&request=$2&%{QUERY_STRING} +# If your users receive the message "Sorry, logging in from a different domain is not permitted" +# you must make sure your login form is served from the same hostname as your site pages. +# See http://docs.elgg.org/wiki/Login_token_mismatch_error for more info. +# +# If you must add RewriteRules to change hostname, add them directly below (above all the others) + + +# In for backwards compatibility +RewriteRule ^pg\/([A-Za-z0-9\_\-]+)$ engine/handlers/page_handler.php?handler=$1&%{QUERY_STRING} [L] +RewriteRule ^pg\/([A-Za-z0-9\_\-]+)\/(.*)$ engine/handlers/page_handler.php?handler=$1&page=$2&%{QUERY_STRING} [L] +RewriteRule ^tag\/(.+)\/?$ engine/handlers/page_handler.php?handler=search&page=$1 [L] + -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 ^action\/([A-Za-z0-9\_\-\/]+)$ engine/handlers/action_handler.php?action=$1&%{QUERY_STRING} [L] -RewriteRule ^\_css\/css\.css$ _css/css.php +RewriteRule ^cache\/(.*)$ engine/handlers/cache_handler.php?request=$1&%{QUERY_STRING} [L] -RewriteRule ^pg\/([A-Za-z0-9\_\-]+)\/(.*)$ engine/handlers/pagehandler.php?handler=$1&page=$2&%{QUERY_STRING} -RewriteRule ^pg\/([A-Za-z0-9\_\-]+)$ engine/handlers/pagehandler.php?handler=$1&%{QUERY_STRING} +RewriteRule ^services\/api\/([A-Za-z0-9\_\-]+)\/(.*)$ engine/handlers/service_handler.php?handler=$1&request=$2&%{QUERY_STRING} [L] -RewriteRule xml-rpc.php engine/handlers/xml-rpc_handler.php -RewriteRule mt/mt-xmlrpc.cgi engine/handlers/xml-rpc_handler.php +RewriteRule ^export\/([A-Za-z]+)\/([0-9]+)\/?$ engine/handlers/export_handler.php?view=$1&guid=$2 [L] +RewriteRule ^export\/([A-Za-z]+)\/([0-9]+)\/([A-Za-z]+)\/([A-Za-z0-9\_]+)\/$ engine/handlers/export_handler.php?view=$1&guid=$2&type=$3&idname=$4 [L] + +RewriteRule xml-rpc.php engine/handlers/xml-rpc_handler.php [L] +RewriteRule mt/mt-xmlrpc.cgi engine/handlers/xml-rpc_handler.php [L] -RewriteRule ^tag/(.+)/?$ engine/handlers/pagehandler.php?handler=search&page=$1 # rule for rewrite module test during install - can be removed after installation -RewriteRule ^rewrite.php$ install.php +RewriteRule ^rewrite.php$ install.php [L] + +# Everything else that isn't a file gets routed through the page handler +RewriteCond %{REQUEST_FILENAME} !-d +RewriteCond %{REQUEST_FILENAME} !-f +RewriteRule ^([A-Za-z0-9\_\-]+)$ engine/handlers/page_handler.php?handler=$1 [QSA,L] + +RewriteCond %{REQUEST_FILENAME} !-d +RewriteCond %{REQUEST_FILENAME} !-f +RewriteRule ^([A-Za-z0-9\_\-]+)\/(.*)$ engine/handlers/page_handler.php?handler=$1&page=$2 [QSA,L] + </IfModule> |
