Options -MultiViews +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .? http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^/?(.*/?)index\.(htm|html|php) /$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteCond %{REQUEST_URI} !^/search-results
RewriteCond %{QUERY_STRING} !=”"
RewriteRule ^(.*)$ /$1? [R=301,L]
ErrorDocument 404 /sitemap
I use this file for the FREEWebPlate website template I built | View Demo
In order from top to bottom, I’ve marked parts in bold that you may want to alter:
- index | you may change this to: default if that’s what you’re using
- htm|html|php | you may add more extensions like so: htm|html|php|asp
- php (both places) | you may change to any other file type extension; htm, html etc.
- /search-results | you’ll need to specify what folders/files you want to allow query strings (?) on, add a new line for each
- /sitemap | you’ll need to specify what page/URL you want 404 pages to go to
For more advanced users, you can of course alter it however you like.
What this Script Does
- Enforces www in URLs
- Removes index.htm, index.html and index.php from URLs
- Allows you to link to cleaner versions of URLs without using the extension (use website.com/contact instead of website.com/contact.php)
- Strips query strings from URLs except for the folders and files you allow
- Forwards/redirects 404 error pages to the page of your choice
Enjoy.
Thanks, Bryan
This will enforce forwarding / redirection to the www version of your pages, enforce clean URLs by removing index.php, index.html and index.htm and by removing query characters like ? where they don’t belong adding exceptions for folders/files where they are allowed and my favorite part, forwarding / redirecting 404 error pages to the page of your choosing, check it out:
RewriteEngine on
RewriteBase /RewriteRule ^index\.(htm|html|php) http://www.website.com/ [R=301,L]
RewriteRule ^(.*)/index\.(htm|html|php) http://www.website.com/$1/ [R=301,L]
RewriteCond %{HTTP_HOST} !^www\..*
RewriteRule ^.*$ http://www.website.com%{REQUEST_URI} [R=permanent,L]RewriteCond %{REQUEST_URI} !^/search-results.php
RewriteCond %{QUERY_STRING} !=”"
RewriteRule ^(.*)$ /$1? [R=301,L]ErrorDocument 404 sitemap.php
Bold parts are places you can edit. Simply paste the code in Notepad and then change website.com to your websites info, change search-results.php to the page you want to allow query strings on like a search results page, change sitemap.php to whatever page you want users to reach if they’ve reached your site in error, you can simply make it / if you want 404 errors to redirect to your homepage.
Save text file as .htaccess with “All Files” selected and then upload to the root folder of your website, this is often called public_html, just make sure it resides next to your index file.
Enjoy.
Thanks, Bryan
Canonical Link WordPress Plugin
Download Now | Find on WordPress with Instructions | Help Forum
Canonical Link Script
Adding a canonical link tag to every page of a website, one by one for most is severely daunting if not completely impractical or impossible. Especially if you have thousands of pages.
The importance of the canonical link is to give Google a clean representation and suggestion of what you want your URLs to look like and how you want Google to index and display them in search results, this can also help to clear up duplicate page issues.
It’s important to understand that the canonical link is not a rule, but merely a suggestion, Google (and other search engines) can still overrule your suggestion. It might have been better named Canonical URL Suggestion.









