##
# @version $Id: htaccess.txt 21101 2011-04-07 15:47:33Z dextercowley $
# @package Joomla
# @copyright Copyright (C) 2005 - 2011 Open Source Matters. All rights reserved.
# @license GNU General Public License version 2 or later; see LICENSE.txt
##
##
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations. It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file. If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's. If they work,
# it has been set by your server administrator and you do not need it set here.
##
## Can be commented out if causes errors, see notes above.
Options +FollowSymLinks
## Mod_rewrite in use.
RewriteEngine On
## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.
## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects
##
# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##
# RewriteBase /
## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for something within the component folder,
# or for the site root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html?|feed|pdf|raw))$ [NC]
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
UrlToolkit {
ToolkitID = joomla
Match base64_encode.*\(.*\) DenyAccess
Match (<|%3C).*script.*(>|%3E) DenyAccess
Match GLOBALS(=|\[|\%[0-9A-Z]{0,2}) DenyAccess
Match _REQUEST(=|\[|\%[0-9A-Z]{0,2}) DenyAccess
RequestURI exists Return
Match /index.php Return
Match ^/component/ Skip 2
Match ^(/|\.php|\.html|\.htm|\.feed|\.pdf|\.vcf|\.raw|/[^.]*)$ Skip 1
Skip 1
Match .* Rewrite /index.php
}
Match ^/component/ Skip 2
Match ^/component/(/|\.php|\.html|\.htm|\.feed|\.pdf|\.vcf|\.raw|/[^.]*)$ Skip 1
Match ^/component/ Skip 2
Match ^(/|\.php|\.html|\.htm|\.feed|\.pdf|\.vcf|\.raw|/[^.]*)$ Skip 1
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
UrlToolkit {
ToolkitID = redirect_domain
Match ^/(.*) Redirect http://www.mydomain.com/$1
}
VirtualHost {
Hostname = mydomain.com
WebsiteRoot = /usr/local/www
UseToolkit = redirect_domain
}
VirtualHost {
Hostname = www.mydomain.com
WebsiteRoot = /usr/local/www
StartFile = index.php
..............
VirtualHost {
Hostname = test.mydomain.com
...
}
VirtualHost {
Hostname = *.mydomain.com
UseToolkit = redirect_domain
...
}
# DEFAULT WEBSITE
Hostname = 127.0.0.1
WebsiteRoot = /usr/local/www/site
VirtualHost {
Hostname = test.mydomain.com
WebsiteRoot = /usr/local/www/test
...
}
VirtualHost {
Hostname = mydomain.com
UseToolkit = joomla
WebsiteRoot = /usr/local/www/site
...
}
match ^/(.*) http://www.mydomain.com/ redirect $ 1to "ToolkitID = joomla"
VirtualHost {
Hostname = test.mydomain.com
DocumentRoot = /usr/local/www/site
...
}
VirtualHost {
Hostname = mydomain.com, *.mydomain.com
DocumentRoot = /usr/local/www/site
...
}
VirtualHost {
Hostname = www.mydomain.com
DocumentRoot = /usr/local/www/site
UrlToolkit = redirect_domain
...
}
UrlToolkit {
ToolkitID = redirect_domain
Match ^/(.*) Redirect http://www.mydomain.com/$1
}
UrlToolkit {
ToolkitID = redirect_domain
Match ^/(.*) Redirect http://www.mydomain.com/$1
}
# DEFAULT WEBSITE
# It is wise to use your IP address as the hostname of the default website
# and give it a blank webpage. By doing so, automated webscanners won't find
# your possible vulnerable website.
#
Hostname = 127.0.0.1
WebsiteRoot = /usr/local/www/site
StartFile = index.php
AccessLogfile = /var/log/hiawatha/access.log
ErrorLogfile = /var/log/hiawatha/error.log
UseFastCGI = PHP5
EnablePathInfo = yes
ExecuteCGI = yes
TimeForCGI = 480
#ErrorHandler = 404:/error.cgi
# VIRTUAL HOSTS
VirtualHost {
Hostname = test.mydomain.com
WebsiteRoot = /usr/local/www/test
StartFile = index.php
AlterGroup = www
AccessLogfile = /usr/local/www/site/logs/access.log
ErrorLogfile = /usr/local/www/site/logs/error.log
ExecuteCGI = yes
FollowSymlinks = yes
EnablePathInfo = yes
TriggerOnCGIstatus = no
TimeForCGI = 60
UseFastCGI = PHP5
UseGZfile = yes
ErrorHandler = 403:/error.php
}
VirtualHost {
Hostname = mydomain.com, 186.IP.Address.45
WebsiteRoot = /usr/local/www/site
UseToolkit = redirect_domain
}
VirtualHost {
Hostname = www.mydomain.com
WebsiteRoot = /usr/local/www/site
StartFile = index.php
AlterGroup = www
AccessLogfile = /usr/local/www/site/logs/access.log
ErrorLogfile = /usr/local/www/site/logs/error.log
ExecuteCGI = yes
FollowSymlinks = yes
EnablePathInfo = yes
TriggerOnCGIstatus = no
TimeForCGI = 60
UseFastCGI = PHP5
UseToolkit = joomla1.5
UseGZfile = yes
ErrorHandler = 403:/error.php
}