Options +FollowSymLinks
## Mod_rewrite in use.
RewriteEngine On
########## Begin - Custom redirects
#
# Rewrite news/pr/foo as pr/foo
RewriteRule ^news/pr/(.+)$ pr/$1 [R=301,L]
# Rewrite reprints/clippings/foo as clippings/foo
RewriteRule ^reprints/clippings/(.+)$ clippings/$1 [R=301,L]
# Rewrite old components directory
RewriteRule ^(.*)components/default.htm$ system-components/ [R=301,L]
# Rewrite old path to interviews
RewriteRule ^/?interviews/features/(.*).htm$ $1 [R=301,L]
# Rewrite old surfaces URL
RewriteRule ^(.*)/smartsurface.htm$ surfaces/ [R=301,L]
# Remove legacy root default file
RewriteRule ^default.htm$ $1 [R=301,L]
# Remove legacy index files
RewriteRule ^(.*)/(default.htm|default.html|index.htm|index.html)$ $1/ [R=301,L]
########## End - Custom redirects
########## Ensure final slash
#RewriteCond %{REQUEST_FILENAME} -f
#RewriteRule ^(.*) $1 [L]
#RewriteCond %{REQUEST_URI} !(.*)/$
#RewriteRule ^(.*)$ $1/ [L,R=301]
########## Begin - Ensure final slash
########## Begin - Redirect www to non-www
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
## If the above throws an HTTP 500 error, swap [R=301,L] with [R,L]
########## End - Redirect non-www to www
## Begin - Rewrite rules to block out some common exploits.
#
# 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.
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.