Htaccess: Redirect: Difference between revisions

New page: <span id="top"></span> <div style="padding:0;margin:0; border-bottom:3px inset #000000"> {| | MPG UniCenter || .htaccess: [[Htaccess: Introduction | Introduc...
 
Moved to new category; Additional grammar and cleanup edits.
 
(4 intermediate revisions by 3 users not shown)
Line 2: Line 2:
<div style="padding:0;margin:0; border-bottom:3px inset #000000">
<div style="padding:0;margin:0; border-bottom:3px inset #000000">
{|  
{|  
|[[Image:uc_small_logo.gif | MPG UniCenter]] ||
 
.htaccess:  
.htaccess:  
[[Htaccess: Introduction | Introduction]] |   
[[Htaccess: Introduction | Introduction]] |   
Line 20: Line 20:
'''Redirect'''
'''Redirect'''


The htaccess command Redirect is very powerful you can redirect files or complete folders. Why would you want to do this a typical example would be that you have changed the structure of your site but wish old links (saved by a user) to be redirected to your new page location or even new page name.
The Redirect .htaccess command is very powerful. You can redirect files or complete directories. Why would you want to do this? A typical example would be that you have changed the structure of your site but want to have old links (saved by a user) still function and be redirected to your new page location, or even a new page name.


== Redirect format ==
== Redirect format ==
The redirect command must be on a single line with each element separated by a space it has the following format:
The redirect command must be on a single line with each element separated by a space. It has the following format:


:'''Redirect old_path new_path'''
:'''Redirect old_path new_path'''


=== File Redirect format ===
=== File Redirect format ===
Looking at this in a little more detail using this example
Let's look at this in a little more detail using this example:


'''Redirect /olddirectory/oldfile.html <nowiki>http://yoursite.com/newdirectory/newfile.html</nowiki>'''
'''Redirect /olddirectory/oldfile.html <nowiki>http://yoursite.com/newdirectory/newfile.html</nowiki>'''
Line 37: Line 37:
* This is the path to the old file you want redirected
* This is the path to the old file you want redirected
* It is stated in a relative file format
* It is stated in a relative file format
* Again followed by a space
* Followed again by a space
<li> '''<nowiki>http://yoursite.com/newdirectory/newfile.html</nowiki>'''
<li> '''<nowiki>http://yoursite.com/newdirectory/newfile.html</nowiki>'''
* This is the full (URL) path of the location you want the request redirected to
* This is the full (URL) path of the location you want the request redirected to
</ol>
</ol>


You would place a Redirect command in the root htaccess file for each file you want to redirect.
You would place a Redirect command in the root .htaccess file for each file you want to redirect.


=== Folder Redirect ===
=== Directory (Folder) Redirect ===
Suppose that all you have done is renamed a folder (and even moved it to another location) however all the files still have their original names redirecting a folder is similar to the above for example:
Suppose that all you have done is to rename a directory (and possibly moved it to another location); however all the files still have their original names. Redirecting a directory is similar to the above; for example:


'''Redirect /olddirectory <nowiki>http://yoursite.com/newdirectory</nowiki>'''
'''Redirect /olddirectory <nowiki>http://yoursite.com/newdirectory</nowiki>'''
Line 54: Line 54:
* This is the path to the old directory you want redirected
* This is the path to the old directory you want redirected
* It is stated in a relative file format
* It is stated in a relative file format
* Again followed by a space
* Followed again by a space
<li> '''<nowiki>http://yoursite.com/newdirectory</nowiki>'''
<li> '''<nowiki>http://yoursite.com/newdirectory</nowiki>'''
* This is the full (URL) path of the location you want the request redirected to
* This is the full (URL) path of the location you want the request redirected to
</ol>
</ol>


'''''[[#top | Top]]'''''
== Directory example 1 ==
== Directory example 1 ==
Using our '''errors folder''' make a copy of it and rename it to '''moved'''.
Using our '''errors''' directory, make a copy of it and rename it to '''moved'''.


{|
{|
Line 69: Line 68:
|-style="background:#f9f9f9"
|-style="background:#f9f9f9"
|
|
# Navigate to the root folder '''www'''.
# Navigate to the root directory '''www'''.
# Open the '''.htaccess''' file
# Open the '''.htaccess''' file
# Add the command shown on the right last line.
# Add the command shown on the right last line.
Line 81: Line 80:
Deny from all
Deny from all
Allow from 127.0.0.1
Allow from 127.0.0.1
Allow from ::1


# To allow execution of cgi scripts in this directory uncomment next two lines.
# To allow execution of cgi scripts in this directory uncomment next two lines.
Line 101: Line 101:
'''Testing'''
'''Testing'''


# Run the server using Server_Start.bat
# (Re)start the server.
# In the browser address bar type '''<nowiki>http:/localhost/old</nowiki>'''
# In the browser address bar, type '''<nowiki>http:/localhost/old</nowiki>'''
# You will be redirected to the folder '''<nowiki>http://localhost/moved/</nowiki>'''
# You will be redirected to the directory '''<nowiki>http://localhost/moved/</nowiki>'''


'''''[[#top | Top]]'''''
== Directory example 2 ==
== Directory example 2 ==
Open the file '''not_found.html''' contained in folder moved add some more text to distinguish it from the original.
Open the file '''not_found.html''' contained in the directory that was moved and add some more text to distinguish it from the original.


'''Testing'''
'''Testing'''
# Run the server using Server_Start.bat
# (Re)start the server.
# In the browser address bar type '''<nowiki>http:/localhost/old/not_found.html</nowiki>'''
# In the browser address bar type '''<nowiki>http:/localhost/old/not_found.html</nowiki>'''
# You will be redirected to the file '''<nowiki>http://localhost/moved/not_found.html</nowiki>'''
# You will be redirected to the file '''<nowiki>http://localhost/moved/not_found.html</nowiki>'''


Well you get the idea experiment with files it is similar to the folder example.
And so forth. Experiment with files; it is similar to the directory example.


'''''[[#top | Top]]'''''
== Practical Example ==
== Practical Example ==
I was faced with this very problem UniCenter has been around for nearly two years and started to become unmanageable hence the move over to the Wiki. Many web sites link to various pages on UniCenter to avoid frustration of not finding an article; users are redirected to the appropriate page on the Wiki.
After UniCenter had been around for nearly two years, it started to become unmanageable, hence the move over to the Wiki. Many web sites linked to various pages on UniCenter, so to avoid the frustration of not finding an article, users were redirected to the appropriate page on the Wiki.


Below is a small extract from my .htaccess file you will see I am using page redirection:  
Below is a small extract from a UniCenter .htaccess file, where you will see the use of page redirection:  


<pre>
<pre>
Line 134: Line 132:
</pre>
</pre>


'''''Tip'':''' I first publish the Wiki pages, use a browser to view a page and copy the link into .htaccess. Similar process to obtain the redirected page.
'''''Tip'':''' I first published the Wiki pages. Then I used a browser to view a page and copy the link into .htaccess. The process is similar to obtaining the redirected page.


=== Errors ===
=== Errors ===
Line 142: Line 140:
The server encountered an internal error or misconfiguration and was unable to complete your request.
The server encountered an internal error or misconfiguration and was unable to complete your request.
</pre>
</pre>
 
Remember to always make small changes to .htaccess and then test. This makes it easier to isolate and resolve any problems.
Hence always make small changes to .htaccess and then test, makes it easier to isolate and resolve any problems.
    
    
'''''[[#top | Top]]'''''
----
----


{|
[[Category: Apache Configuration]]
| [[Image:uc_small_logo.gif]] || [[User:Ric|Ric]]
|}
 
[[Category: UniCenter]]
[[Category: Support]]
[[Category: Troubleshooting ]]
[[Category: Application]]
[[Category: Development]]