Search
Left Quote    Nearly all men can stand adversity, but if you want to test a man's character, give him power.
- Abraham Lincoln    
Right Quote
 
[login] | [Register]
 

Mod_Rewrite URLs for Search Engines

by: bs0d
Page: 2 of 3
(View All)

The Code

Open up your .htaccess file. To begin using mod_rewrite, your first line of code will be:



Simple enough, right? Next we're going to tell mod_rewrite where to work (base directory) with this statement:



The next line of code will be your actual rewrite rule which contains regex. What is regex? "A regular expression, which is a way of describing a pattern to match in text. The directive definition will specify what the regex is matching against." - Apache

See also:
Apache.org

When I started learning about mod_rewrite, this is the part I first had trouble with because I don't think I found it explained too clear anywhere, so here I am going to describe each part to you the best I can.

you will use these expressions in the code to rewrite your urls, here they are and what they do:

^ - start of line,to match from beginning.
$ - End of line, match to end.
.(dot) - Match any single character (except for zero).
* - Match many characters.
[ ] - Match any character within the brackets.
[^ ] - Match any character, except whats listed in brackets.
+ - Match the preceding element 1 more times.
- excape preceding.
.* - will match an unlimited number of characters.

ok, that should clear things up a bit. At the end of this tutorial, I will provide links to some references and guides you can use to continue learning about regex, ect.
At the end of some of your rules, you declare what exactly the rule is evaluating, see below:

[NC] - No case (not case sensitive).
[OR] - Or next condition (declare one, then put [OR] and declare another).
[L] - Last rule.
[F] - Force URL to forbidden (HTTP 403: Forbidden).
[D] - Is a directory.
[R] - Redirect to external redirection (HTTP 302: Moved Temporairly).


You can use these combined with others. If you want to say no case for a rule, and specify an or, then you would just do [NC,OR] at the end. And if you use a ! in front of them, this will turn it around. Like, if you had [!L] would mean, Not a link, just like using ! in other programming.

Now that we have turned the rewrite engine on, and declared the base directory, we can begin setting up our rewrite rules.




Lets breakdown our rule. You see ^(.*) followed by categories.php?type=$1 and finally [NC]. ^(.*)/ is a wildcard, to which we refer back to with $1. This rule is saying, The first directory after /tutorials/ will now contain the text from whatever type equals in categories.php?type=. For example, If you link a visitor to:

www.yoursite.com/tutorials/php/

^^it will display the results as if you had send them to:

www.yoursite.com/tutorials/categories.php?type=php

See? Now, if php was not a type in your categories.php file, then it would bring up the error you set when an unknown type is attempted.


1  |  2  |  3  |  
Next »


No Comments for this page.

You Must be logged in or a member to comment.


Tutorial Stats

Tutorial Stats

282,753 Views
0 Total Comments
5 Rating of 5 (1 Votes)

Options

Tutorial Options

· Login to Rate This Article
· Login to Post a Comment
· Read more by this author
Digg This Article! Del.icio.us: Bookmark This Article Reddit: Bookmark This Article BlinkList: Blink This Article! YahooMyWeb BlogMarks: Add This Mark! Furl: Save This Article Spurl: Mark This Article

Articles

Related    

Your Article Here



"AllSyntax.com" Copyright © 2002-2018; All rights lefted, all lefts righted.
Privacy Policy  |  Internet Rank