Snippets

Sean Smith SSL htaccess per environment

Created by Caffeine Creations
# Error document(s)
# ErrorDocument 403 /403.html


# Set some environment variables based on our http host (URL)
# directive			var		regex match						setenv var		setenv var					setenv var
SetEnvIfNoCase		Host	"domain.dev"			APP_ENV=local	APP_ENV_FULL=Local
SetEnvIfNoCase		Host	"sub.domain.com"	    APP_ENV=dev		APP_ENV_FULL=Development
SetEnvIfNoCase		Host	"domain.com"			APP_ENV=prod	APP_ENV_FULL=Production		APP_ENV_IS_PUBLIC=1


# mod_rewrite stuff
<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /

# Only used in our production environment
RewriteCond %{ENV:APP_ENV} prod
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]

# Force SSL on production environment
RewriteCond %{ENV:APP_ENV} prod
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://domain.com/$1 [R,L]

# Strip index.php/ from URLs in case someone gets clever
RewriteCond %{THE_REQUEST} ^[^/]*/index\.php [NC]
RewriteRule ^index\.php(.+) $1 [R=301,L]

# Remove a trailing slash if it's there unnecessarily
RewriteCond $1 !\.(css|js|gif|jpe?g|png) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [R=301,L]

# CP URL Redirect
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^manage/?$ /admin.php [R=301,L]

# Primary EE re-write
RewriteCond $1 !\.(css|js|gif|jpe?g|png) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.