Created
October 8, 2013 15:11
-
-
Save JacobBennett/6886260 to your computer and use it in GitHub Desktop.
.htaccess rewrite block
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ############################################################################## | |
# # URL REWRITES # | |
# ############################################################################## | |
# ------------------------------------------------------------------------------ | |
# | Rewrite engine | | |
# ------------------------------------------------------------------------------ | |
# Turning on the rewrite engine and enabling the `FollowSymLinks` option is | |
# necessary for the following directives to work. | |
# If your web host doesn't allow the `FollowSymlinks` option, you may need to | |
# comment it out and use `Options +SymLinksIfOwnerMatch` but, be aware of the | |
# performance impact: http://httpd.apache.org/docs/current/misc/perf-tuning.html#symlinks | |
# Also, some cloud hosting services require `RewriteBase` to be set: | |
# http://www.rackspace.com/knowledge_center/frequently-asked-question/why-is-mod-rewrite-not-working-on-my-site | |
<IfModule mod_rewrite.c> | |
Options +FollowSymlinks | |
# Options +SymLinksIfOwnerMatch | |
RewriteEngine On | |
RewriteBase / | |
# To externally redirect /dir/foo.php to /dir/foo | |
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] | |
RewriteRule ^ %1 [R,L] | |
# To internally forward /dir/foo to /dir/foo.php | |
RewriteCond %{REQUEST_FILENAME} !-d | |
RewriteCond %{REQUEST_FILENAME}.php -f | |
RewriteRule ^(.*?)/?$ $1.php [L] | |
</IfModule> | |
# ------------------------------------------------------------------------------ | |
# | Suppressing / Forcing the "www." at the beginning of URLs | | |
# ------------------------------------------------------------------------------ | |
# The same content should never be available under two different URLs especially | |
# not with and without "www." at the beginning. This can cause SEO problems | |
# (duplicate content), therefore, you should choose one of the alternatives and | |
# redirect the other one. | |
# By default option 1 (no "www.") is activated: | |
# http://no-www.org/faq.php?q=class_b | |
# If you'd prefer to use option 2, just comment out all the lines from option 1 | |
# and uncomment the ones from option 2. | |
# IMPORTANT: NEVER USE BOTH RULES AT THE SAME TIME! | |
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
# Option 1: rewrite www.example.com → example.com | |
<IfModule mod_rewrite.c> | |
RewriteCond %{HTTPS} !=on | |
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] | |
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L] | |
</IfModule> | |
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
# Option 2: rewrite example.com → www.example.com | |
# Be aware that the following might not be a good idea if you use "real" | |
# subdomains for certain parts of your website. | |
# <IfModule mod_rewrite.c> | |
# RewriteCond %{HTTPS} !=on | |
# RewriteCond %{HTTP_HOST} !^www\..+$ [NC] | |
# RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] | |
# </IfModule> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment