article_title and category name are both stored in database with corresponding article_id and cat_id. I don't have idea how to implement url rewriting rules on the fly.
Though, I know how to configure web.config file. But that seems to be predecided rules based on some certain strings.
Take a look at this article
here which should get you started. It also has links to third party products as well.
Kevin
Thanks kevin,
Article is really good, but i have confusion regarding implementation
That is, imagine that a user types into their browser window, /people/ScottMitchell.aspx, which is rewritten to /info/employee.aspx?empID=1001.
empID=1001 is related to ScotMitchell, that means, we will have to find the empid from database where employee name is ScottMitcheell and rewrite the url with empId fetched from url.
In
this article I didn't find the implementation. Infact I found no example on net where urlrewriting has been implemented using dynamic values fetched from database.
I hope i make sense. It is really very important to me, please help
That is, imagine that a user types into their browser window, /people/ScottMitchell.aspx, which is rewritten to /info/employee.aspx?empID=1001
That is not the way Scott's article works. In the article, Scott uses regular expressions to
rearrange the incoming URL. For example, here is the incoming URL.
www.example.com/articles/friendly-urls.aspx
Then, the regular expression code rearranges the URL:
www.example.com/ShowArticle.aspx?id=friendly-urls
What is important to realize is that the ID of the page (friendly-urls) has not been changed. It has only been
rearranged in its position in the URL. If you look at your own example that I have quoted, you will see that you have changed the ID from ScottMitchell to 1001. That is not how the URL rewriting in Scott's article works, which is why the article
does not talk about how to work with the database.
You have two choices.
First, you can stick with the technique shown in Scott's article, where you simply rearrange the incoming URL without ever hitting the database. If your website is small, then this approach would be ideal. It is simple and easy to use. (I think the .sitemap
file in ASP.NET version 2.0 allows for URL rewriting, so if you are using the new version of ASP.NET, then you might want to look into this possibility.)
Second, you can use a completely different technique to that shown in Scott's article. You'd still place the URL rewriting code in the same location as that shown by Scott, but you wouldn't use any regular expression-based rearranging. Rather, you would
pass the incoming URL to the database and retrieve the actual URL needed. This is more complex than the approach taken in Scott's article, but it is a lot more flexible, and more appropriate to larger websites.
I should point out that you would not really want to hit the database for every incoming page request. Rather, you'd want to hit the database once to retrieve some sort of Site Map, and then use that loaded Site Map to figure out where to redirect all future
incoming page requests.
If you don't know which approach to take, then stick with Scott's approach. Use it until you outgrow it, which may never happen. So, use the URL rewriting just to rearrange the incoming page address. Then, your page uses QueryString("id") to get the friendly ID
of the article, or person, or product, or whatever else that page is to show. Then, you can pass that friendly ID (such as "friendly-urls" or "ScottMitchell" or "iPod" or whatever) to the database in order to retrieve the details of the article or person
or product.
Member
12 Points
55 Posts
URL Rewriting Rules on the fly
Apr 05, 2006 07:53 AM|akajain|LINK
I want to implement the URL Rewriting in my website. Lets say I have a article website which have many articles sorted in different categories.
To access any particular article URL looks like
www.mysite.com/articles/show_article.aspx?article_id=123&cat_id=45
What I want is my url should look like this
www.mysite.com/articles/category_name/article_title.aspx
article_title and category name are both stored in database with corresponding article_id and cat_id. I don't have idea how to implement url rewriting rules on the fly.
Though, I know how to configure web.config file. But that seems to be predecided rules based on some certain strings.
Please help me out !
Thanks and Regards
Member
50 Points
58 Posts
Re: URL Rewriting Rules on the fly
Apr 05, 2006 08:53 PM|kevinkenny|LINK
Take a look at this article here which should get you started. It also has links to third party products as well.
Kevin
Member
12 Points
55 Posts
Re: URL Rewriting Rules on the fly
Apr 06, 2006 06:14 AM|akajain|LINK
Thanks kevin,
Article is really good, but i have confusion regarding implementation
That is, imagine that a user types into their browser window, /people/ScottMitchell.aspx, which is rewritten to /info/employee.aspx?empID=1001.
empID=1001 is related to ScotMitchell, that means, we will have to find the empid from database where employee name is ScottMitcheell and rewrite the url with empId fetched from url.
In this article I didn't find the implementation. Infact I found no example on net where urlrewriting has been implemented using dynamic values fetched from database.
I hope i make sense. It is really very important to me, please help
thanks
Participant
1001 Points
7915 Posts
Re: URL Rewriting Rules on the fly
Apr 06, 2006 10:01 PM|SomeNewKid|LINK
www.example.com/articles/friendly-urls.aspx
Then, the regular expression code rearranges the URL:
www.example.com/ShowArticle.aspx?id=friendly-urls
What is important to realize is that the ID of the page (friendly-urls) has not been changed. It has only been rearranged in its position in the URL. If you look at your own example that I have quoted, you will see that you have changed the ID from ScottMitchell to 1001. That is not how the URL rewriting in Scott's article works, which is why the article does not talk about how to work with the database.
You have two choices.
First, you can stick with the technique shown in Scott's article, where you simply rearrange the incoming URL without ever hitting the database. If your website is small, then this approach would be ideal. It is simple and easy to use. (I think the .sitemap file in ASP.NET version 2.0 allows for URL rewriting, so if you are using the new version of ASP.NET, then you might want to look into this possibility.)
Second, you can use a completely different technique to that shown in Scott's article. You'd still place the URL rewriting code in the same location as that shown by Scott, but you wouldn't use any regular expression-based rearranging. Rather, you would pass the incoming URL to the database and retrieve the actual URL needed. This is more complex than the approach taken in Scott's article, but it is a lot more flexible, and more appropriate to larger websites.
I should point out that you would not really want to hit the database for every incoming page request. Rather, you'd want to hit the database once to retrieve some sort of Site Map, and then use that loaded Site Map to figure out where to redirect all future incoming page requests.
If you don't know which approach to take, then stick with Scott's approach. Use it until you outgrow it, which may never happen. So, use the URL rewriting just to rearrange the incoming page address. Then, your page uses QueryString("id") to get the friendly ID of the article, or person, or product, or whatever else that page is to show. Then, you can pass that friendly ID (such as "friendly-urls" or "ScottMitchell" or "iPod" or whatever) to the database in order to retrieve the details of the article or person or product.
Does that help you?