Skip to content

Instantly share code, notes, and snippets.

@craighooghiem
Forked from ScottPhillips/.htaccess
Last active March 20, 2016 12:09
Show Gist options
  • Save craighooghiem/b9ef1836bd9fe22fb0d3 to your computer and use it in GitHub Desktop.
Save craighooghiem/b9ef1836bd9fe22fb0d3 to your computer and use it in GitHub Desktop.

Revisions

  1. craighooghiem revised this gist Mar 20, 2016. 1 changed file with 25 additions and 0 deletions.
    25 changes: 25 additions & 0 deletions .htaccess.md
    Original file line number Diff line number Diff line change
    @@ -21,30 +21,42 @@ RedirectMatch 301 (.*)\.html$ http://www.domain.com$1.php

    ###Redirect from old domain to new domain
    RewriteEngine on

    RewriteBase /
    RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

    ###Redirect to www location
    RewriteEngine on

    RewriteBase /

    rewritecond %{http_host} ^domain.com [nc]

    rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

    ###Redirect to www location with subdirectory
    RewriteEngine on

    RewriteBase /

    RewriteCond %{HTTP_HOST} domain.com [NC]

    RewriteRule ^(.*)$ http://www.domain.com/directory/index.html [R=301,NC]

    ###Redirect from old domain to new domain with full path and query string:
    Options +FollowSymLinks

    RewriteEngine On

    RewriteRule ^(.*) http://www.newdomain.com%{REQUEST_URI} [R=302,NC]

    ###Redirect from old domain with subdirectory to new domain w/o subdirectory including full path and query string:
    Options +FollowSymLinks

    RewriteEngine On

    RewriteCond %{REQUEST_URI} ^/subdirname/(.*)$

    RewriteRule ^(.*) http://www.katcode.com/%1 [R=302,NC]

    ####Rewrite and redirect URLs with query parameters (files placed in root directory)
    @@ -58,7 +70,9 @@ http://www.example.com/path-to-new-location/
    **.htaccess syntax:**

    RewriteEngine on

    RewriteCond %{QUERY_STRING} id=1

    RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301]

    ####Redirect URLs with query parameters (files placed in subdirectory)
    @@ -72,7 +86,9 @@ http://www.example.com/path-to-new-location/
    **.htaccess syntax:**

    RewriteEngine on

    RewriteCond %{QUERY_STRING} id=1

    RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301]

    ####Redirect one clean URL to a new clean URL
    @@ -98,6 +114,7 @@ Desired destination URL:

    **.htaccess syntax:**


    RewriteEngine On
    RewriteRule ^([^/d]+)/?$ index.php?id=$1 [QSA]

    @@ -112,12 +129,15 @@ http://www.example.com/category/fish/
    **.htaccess syntax:**

    RewriteEngine On

    RewriteRule ^/?category/([^/d]+)/?$ index.php?category=$1 [L,QSA]

    ####Domain change – redirect all incoming request from old to new domain (retain path)

    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^example-old\.com$ [NC]

    RewriteRule ^(.*)$ http://www.example-new.com/$1 [R=301,L]

    If you do not want to pass the path in the request to the new domain, change the last row to:
    @@ -126,8 +146,13 @@ RewriteRule ^(.*)$ http://www.example-new.com/ [R=301,L]

    ###From blog.oldsite.com -> www.somewhere.com/blog/
    retains path and query, and eliminates xtra blog path if domain is blog.oldsite.com/blog/

    Options +FollowSymLinks

    RewriteEngine On

    RewriteCond %{REQUEST_URI}/ blog

    RewriteRule ^(.*) http://www.somewhere.com/%{REQUEST_URI} [R=302,NC]

    RewriteRule ^(.*) http://www.somewhere.com/blog/%{REQUEST_URI} [R=302,NC]
  2. craighooghiem revised this gist Mar 20, 2016. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions .htaccess.md
    Original file line number Diff line number Diff line change
    @@ -47,7 +47,7 @@ RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/subdirname/(.*)$
    RewriteRule ^(.*) http://www.katcode.com/%1 [R=302,NC]

    Rewrite and redirect URLs with query parameters (files placed in root directory)
    ####Rewrite and redirect URLs with query parameters (files placed in root directory)

    **Original URL:**
    http://www.example.com/index.php?id=1
    @@ -60,7 +60,8 @@ http://www.example.com/path-to-new-location/
    RewriteEngine on
    RewriteCond %{QUERY_STRING} id=1
    RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301]
    Redirect URLs with query parameters (files placed in subdirectory)

    ####Redirect URLs with query parameters (files placed in subdirectory)

    **Original URL:**
    http://www.example.com/sub-dir/index.php?id=1
  3. craighooghiem revised this gist Mar 20, 2016. 1 changed file with 5 additions and 2 deletions.
    7 changes: 5 additions & 2 deletions .htaccess.md
    Original file line number Diff line number Diff line change
    @@ -73,7 +73,8 @@ http://www.example.com/path-to-new-location/
    RewriteEngine on
    RewriteCond %{QUERY_STRING} id=1
    RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301]
    Redirect one clean URL to a new clean URL

    ####Redirect one clean URL to a new clean URL

    **Original URL:**
    http://www.example.com/old-page/
    @@ -85,7 +86,8 @@ http://www.example.com/new-page/

    RewriteEngine On
    RewriteRule ^old-page/?$ $1/new-page$2 [R=301,L]
    Rewrite and redirect URLs with query parameter to directory based structure, retaining query string in URL root level

    ####Rewrite and redirect URLs with query parameter to directory based structure, retaining query string in URL root level

    **Original URL:**
    http://www.example.com/index.php?id=100
    @@ -116,6 +118,7 @@ RewriteRule ^/?category/([^/d]+)/?$ index.php?category=$1 [L,QSA]
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^example-old\.com$ [NC]
    RewriteRule ^(.*)$ http://www.example-new.com/$1 [R=301,L]

    If you do not want to pass the path in the request to the new domain, change the last row to:

    RewriteRule ^(.*)$ http://www.example-new.com/ [R=301,L]
  4. craighooghiem revised this gist Mar 20, 2016. 1 changed file with 26 additions and 20 deletions.
    46 changes: 26 additions & 20 deletions .htaccess.md
    Original file line number Diff line number Diff line change
    @@ -49,63 +49,69 @@ RewriteRule ^(.*) http://www.katcode.com/%1 [R=302,NC]

    Rewrite and redirect URLs with query parameters (files placed in root directory)

    Original URL:

    **Original URL:**
    http://www.example.com/index.php?id=1
    Desired destination URL:

    **Desired destination URL:**
    http://www.example.com/path-to-new-location/
    .htaccess syntax:

    **.htaccess syntax:**

    RewriteEngine on
    RewriteCond %{QUERY_STRING} id=1
    RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301]
    Redirect URLs with query parameters (files placed in subdirectory)

    *Original URL:*
    **Original URL:**
    http://www.example.com/sub-dir/index.php?id=1

    *Desired destination URL:*
    **Desired destination URL:**
    http://www.example.com/path-to-new-location/

    *.htaccess syntax:*
    **.htaccess syntax:**

    RewriteEngine on
    RewriteCond %{QUERY_STRING} id=1
    RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301]
    Redirect one clean URL to a new clean URL

    Original URL:

    **Original URL:**
    http://www.example.com/old-page/
    Desired destination URL:

    **Desired destination URL:**
    http://www.example.com/new-page/
    .htaccess syntax:

    **.htaccess syntax:**

    RewriteEngine On
    RewriteRule ^old-page/?$ $1/new-page$2 [R=301,L]
    Rewrite and redirect URLs with query parameter to directory based structure, retaining query string in URL root level

    Original URL:

    **Original URL:**
    http://www.example.com/index.php?id=100

    Desired destination URL:
    **http://www.example.com/100/**

    http://www.example.com/100/
    .htaccess syntax:
    **.htaccess syntax:**

    RewriteEngine On
    RewriteRule ^([^/d]+)/?$ index.php?id=$1 [QSA]
    Rewrite URLs with query parameter to directory based structure, retaining query string parameter in URL subdirectory

    Original URL:
    ####Rewrite URLs with query parameter to directory based structure, retaining query string parameter in URL subdirectory

    **Original URL:**
    http://www.example.com/index.php?category=fish
    Desired destination URL:

    **Desired destination URL:**
    http://www.example.com/category/fish/
    .htaccess syntax:

    **.htaccess syntax:**

    RewriteEngine On
    RewriteRule ^/?category/([^/d]+)/?$ index.php?category=$1 [L,QSA]
    Domain change – redirect all incoming request from old to new domain (retain path)

    ####Domain change – redirect all incoming request from old to new domain (retain path)

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^example-old\.com$ [NC]
  5. craighooghiem revised this gist Mar 20, 2016. 1 changed file with 16 additions and 17 deletions.
    33 changes: 16 additions & 17 deletions .htaccess.md
    Original file line number Diff line number Diff line change
    @@ -1,47 +1,47 @@
    #301 Redirects for .htaccess
    ## 301 Redirects for .htaccess

    #Redirect a single page:
    ###Redirect a single page:
    Redirect 301 /pagename.php http://www.domain.com/pagename.html

    #Redirect an entire site:
    ###Redirect an entire site:
    Redirect 301 / http://www.domain.com/

    #Redirect an entire site to a sub folder
    ###Redirect an entire site to a sub folder
    Redirect 301 / http://www.domain.com/subfolder/

    #Redirect a sub folder to another site
    ###Redirect a sub folder to another site
    Redirect 301 /subfolder http://www.domain.com/

    #This will redirect any file with the .html extension to use the same filename but use the .php extension instead.
    ###This will redirect any file with the .html extension to use the same filename but use the .php extension instead.
    RedirectMatch 301 (.*)\.html$ http://www.domain.com$1.php

    ##
    #You can also perform 301 redirects using rewriting via .htaccess.
    ###You can also perform 301 redirects using rewriting via .htaccess.
    ##

    #Redirect from old domain to new domain
    ###Redirect from old domain to new domain
    RewriteEngine on
    RewriteBase /
    RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

    #Redirect to www location
    ###Redirect to www location
    RewriteEngine on
    RewriteBase /
    rewritecond %{http_host} ^domain.com [nc]
    rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

    #Redirect to www location with subdirectory
    ###Redirect to www location with subdirectory
    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_HOST} domain.com [NC]
    RewriteRule ^(.*)$ http://www.domain.com/directory/index.html [R=301,NC]

    #Redirect from old domain to new domain with full path and query string:
    ###Redirect from old domain to new domain with full path and query string:
    Options +FollowSymLinks
    RewriteEngine On
    RewriteRule ^(.*) http://www.newdomain.com%{REQUEST_URI} [R=302,NC]

    #Redirect from old domain with subdirectory to new domain w/o subdirectory including full path and query string:
    ###Redirect from old domain with subdirectory to new domain w/o subdirectory including full path and query string:
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/subdirname/(.*)$
    @@ -62,14 +62,13 @@ RewriteCond %{QUERY_STRING} id=1
    RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301]
    Redirect URLs with query parameters (files placed in subdirectory)

    Original URL:

    *Original URL:*
    http://www.example.com/sub-dir/index.php?id=1
    Desired destination URL:

    *Desired destination URL:*
    http://www.example.com/path-to-new-location/
    .htaccess syntax:

    *.htaccess syntax:*
    RewriteEngine on
    RewriteCond %{QUERY_STRING} id=1
    RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301]
    @@ -115,7 +114,7 @@ If you do not want to pass the path in the request to the new domain, change the

    RewriteRule ^(.*)$ http://www.example-new.com/ [R=301,L]

    #From blog.oldsite.com -> www.somewhere.com/blog/
    ###From blog.oldsite.com -> www.somewhere.com/blog/
    retains path and query, and eliminates xtra blog path if domain is blog.oldsite.com/blog/
    Options +FollowSymLinks
    RewriteEngine On
  6. craighooghiem renamed this gist Mar 20, 2016. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  7. Scott Phillips revised this gist Oct 11, 2012. 1 changed file with 8 additions and 0 deletions.
    8 changes: 8 additions & 0 deletions .htaccess
    Original file line number Diff line number Diff line change
    @@ -114,3 +114,11 @@ RewriteRule ^(.*)$ http://www.example-new.com/$1 [R=301,L]
    If you do not want to pass the path in the request to the new domain, change the last row to:

    RewriteRule ^(.*)$ http://www.example-new.com/ [R=301,L]

    #From blog.oldsite.com -> www.somewhere.com/blog/
    retains path and query, and eliminates xtra blog path if domain is blog.oldsite.com/blog/
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{REQUEST_URI}/ blog
    RewriteRule ^(.*) http://www.somewhere.com/%{REQUEST_URI} [R=302,NC]
    RewriteRule ^(.*) http://www.somewhere.com/blog/%{REQUEST_URI} [R=302,NC]
  8. Scott Phillips revised this gist Oct 8, 2012. 1 changed file with 78 additions and 0 deletions.
    78 changes: 78 additions & 0 deletions .htaccess
    Original file line number Diff line number Diff line change
    @@ -36,3 +36,81 @@ RewriteBase /
    RewriteCond %{HTTP_HOST} domain.com [NC]
    RewriteRule ^(.*)$ http://www.domain.com/directory/index.html [R=301,NC]

    #Redirect from old domain to new domain with full path and query string:
    Options +FollowSymLinks
    RewriteEngine On
    RewriteRule ^(.*) http://www.newdomain.com%{REQUEST_URI} [R=302,NC]

    #Redirect from old domain with subdirectory to new domain w/o subdirectory including full path and query string:
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/subdirname/(.*)$
    RewriteRule ^(.*) http://www.katcode.com/%1 [R=302,NC]

    Rewrite and redirect URLs with query parameters (files placed in root directory)

    Original URL:

    http://www.example.com/index.php?id=1
    Desired destination URL:

    http://www.example.com/path-to-new-location/
    .htaccess syntax:

    RewriteEngine on
    RewriteCond %{QUERY_STRING} id=1
    RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301]
    Redirect URLs with query parameters (files placed in subdirectory)

    Original URL:

    http://www.example.com/sub-dir/index.php?id=1
    Desired destination URL:

    http://www.example.com/path-to-new-location/
    .htaccess syntax:

    RewriteEngine on
    RewriteCond %{QUERY_STRING} id=1
    RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301]
    Redirect one clean URL to a new clean URL

    Original URL:

    http://www.example.com/old-page/
    Desired destination URL:
    http://www.example.com/new-page/
    .htaccess syntax:

    RewriteEngine On
    RewriteRule ^old-page/?$ $1/new-page$2 [R=301,L]
    Rewrite and redirect URLs with query parameter to directory based structure, retaining query string in URL root level

    Original URL:

    http://www.example.com/index.php?id=100
    Desired destination URL:

    http://www.example.com/100/
    .htaccess syntax:

    RewriteEngine On
    RewriteRule ^([^/d]+)/?$ index.php?id=$1 [QSA]
    Rewrite URLs with query parameter to directory based structure, retaining query string parameter in URL subdirectory

    Original URL:
    http://www.example.com/index.php?category=fish
    Desired destination URL:
    http://www.example.com/category/fish/
    .htaccess syntax:

    RewriteEngine On
    RewriteRule ^/?category/([^/d]+)/?$ index.php?category=$1 [L,QSA]
    Domain change – redirect all incoming request from old to new domain (retain path)

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^example-old\.com$ [NC]
    RewriteRule ^(.*)$ http://www.example-new.com/$1 [R=301,L]
    If you do not want to pass the path in the request to the new domain, change the last row to:

    RewriteRule ^(.*)$ http://www.example-new.com/ [R=301,L]
  9. @ScottPhillips ScottPhillips created this gist Feb 2, 2012.
    38 changes: 38 additions & 0 deletions .htaccess
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,38 @@
    #301 Redirects for .htaccess

    #Redirect a single page:
    Redirect 301 /pagename.php http://www.domain.com/pagename.html

    #Redirect an entire site:
    Redirect 301 / http://www.domain.com/

    #Redirect an entire site to a sub folder
    Redirect 301 / http://www.domain.com/subfolder/

    #Redirect a sub folder to another site
    Redirect 301 /subfolder http://www.domain.com/

    #This will redirect any file with the .html extension to use the same filename but use the .php extension instead.
    RedirectMatch 301 (.*)\.html$ http://www.domain.com$1.php

    ##
    #You can also perform 301 redirects using rewriting via .htaccess.
    ##

    #Redirect from old domain to new domain
    RewriteEngine on
    RewriteBase /
    RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

    #Redirect to www location
    RewriteEngine on
    RewriteBase /
    rewritecond %{http_host} ^domain.com [nc]
    rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

    #Redirect to www location with subdirectory
    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_HOST} domain.com [NC]
    RewriteRule ^(.*)$ http://www.domain.com/directory/index.html [R=301,NC]