URL-Rewriting
These are my experiments with .htaccess
Contents
- 1 Rewrite folder name to a filename
- 2 All requests to whatever.htm will be sent to whatever.php
- 3 Rewrite www to non www url
- 4 Rewrite non www to www
- 5 Rewrite non www to www with https
- 6 Redirect http to https on one page only
- 7 Rewrite file links
- 8 Rewrite http to https for only one folder
- 9 Youtube in HTTPS page
- 10 Reference
Rewrite folder name to a filename
I have a project which has the admin url as folder/cms-admin/index.php and i want to access this as folder/admin by which it should rewrite to the folder/cms-admin/index.php and it worked...
RewriteRule ^admin cms-admin/index.php [R]
Now i am trying to find a way to include admin/ so that ^admin/ will also be redirected to the above mentioned url. could some body suggest?
All requests to whatever.htm will be sent to whatever.php
This will rewrite any filename with .htm to .php This is useful when you change a file from static htm,html to a php file. So the search engine will not show file not found or any other link backs.
Options +FollowSymlinks RewriteEngine on RewriteRule ^(.*)\.htm$ $1.php [NC]
The [NC] part at the end means "No Case", or "case-insensitive";
All files of .htm to .php
RewriteRule ^(.+)\.htm$ http://site.com/$1.php
Rewrite www to non www url
RewriteCond %{HTTP_HOST} ^www.sitename.com [NC] RewriteRule ^(.*)$ http://sitename.com/$1 [L,R=301] RewriteCond %{HTTP_HOST} ^www.sitename.com [NC] RewriteRule ^(.*)$ http://sitename.com/folder/$1 [L,R=301]
Rewrite non www to www
RewriteCond %{HTTP_HOST} ^sitename\.com RewriteRule (.*) http://www.sitename.com/$1 [R=301,L]
Rewrite non www to www with https
Here all non www url will be rewrited to www with the https prefix
For example if i give sitename.com this will be redirected to https://www.sitename.com
RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.sitename.com/$1 [R,L] RewriteCond %{HTTP_HOST} ^sitename\.com RewriteRule (.*) https://www.sitename.com/$1 [R=301,L]
Redirect http to https on one page only
RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^contact/?$ https://secure.example.com/contact/ [R=301,L]
This will redirect either http://example.com/contact -or- http://example.com/contact/ to https://example.com/contact/
Another Example from http://www.besthostratings.com/articles/force-ssl-htaccess.html
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteCond %{REQUEST_URI} somefolder RewriteRule ^(.*)$ https://www.domain.com/somefolder/$1 [R,L]
Rewrite file links
Options +FollowSymlinks RewriteEngine on RewriteRule ^files/([^/]+)/([^/]+).zip /download.php?section=$1&file=$2 [NC]
would allow you to present this link as..
mysite.com/files/games/hoopy.zip
and in the background have that transparently translated, server-side, to..
mysite.com/download.php?section=games&file=hoopy
From: http://corz.org/serv/tricks/htaccess2.php
Rewrite http to https for only one folder
This is like in the press page sub folder store
RewriteEngine on DirectoryIndex index.php index.html RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.sitename.com/store/$1 [R,L]
Youtube in HTTPS page
In your html code you have to do it like the following
<embed ... src="https://www.youtube.com and so and so ...
In the htaccess file you have to do it like the following
RewriteRule ^youtube/(.*)$ http://www.youtube.com/$1 [L]
so all https of youtube links will be redirected to http but still the page loads without any security warnings like in IE.
Reference: http://www.adammershon.com/display-youtube-videos-on-ssl-page/