Roundup of ISAPI rewrite filters for IIS

Here is a roundup of ISAPI rewrite filters for IIS, they let the webserver take a human friendly request like http://www.jdhodges.com/photos/1002 and rewrite it to a url that a dynamic scripting engine (such as ASP) can understands like http://www.jdhodges.com/photos.asp?photoID=1002 This benefits users who now have a legible URL and especially search engines like Google which are much more likely to index a page which appears to be static than a dynamic looking URL string:

Reasons your site may not be included: Your pages are dynamically generated. We are able to index dynamically generated pages. However, because our web crawler can easily overwhelm and crash sites serving dynamic content, we limit the amount of dynamic pages we index.
Google information for webmaster [google.com]

Another use for URL rewriting is to deal with “hotlinks”. Bob pointed me to a site nice site discussing hotlinks which are bascially links from other websites directly to your content, used for display on their page. I’ve had people do this in forums where they like a photo of mine and instead of linking to the particular page it’s hosted on and sending folks my way, they link directly to the image and use my bandwidth for their gain :-( Here’s an example of someone doing that to me. It’s not a huge deal and thankfully I put the jdhodges.com URL on all of my images… Following the table is a new program called coldlink that is specifically targeted at preventing damage from hotlinks. First, here is another description of hotlinks:

…the practice of building web pages that contain unauthorized content links, known as a hotlink, direct link, or remote link to files hosted by another site. Notice that we said content links and not navigation links that lead to another site. Content links are file references that the browser fetches to draw the page such as images, style sheets, scripts or even complete web pages that are rendered within a frame. In other words, these are embedded content or embedded objects within an html page .

The result of hotlinking is that the offending site is able to present it’s pages without paying for the bandwidth needed to serve up the stolen content. The victim site ends up paying the bandwidth expense for serving up the files without gaining any page views.
Source: wordworx.com

IIS Rewrite is the granddady of rewrite filters and it is the first thorough implemenation that I came across. Now ISAPI_Rewrite appears to be taking the lead but they are still very comparable products. I would like to mention that I have corresponded personally with IIS Rewrite’s creator in the past and he was very helpful and responsive. I don’t have personal experience with ISAPI_Rewrite but many other users are atarted to praise the features it brings to the table.

Below is a table that I compiled attempting to compare the available products, I tried not to come to any incorrect conclusions but for some of the less well know rewriters out there you will want to do some more of your own research. If you don run across and errors or you have a new rewriter to add to the list please email me at jd_hodges_ii AT hotmail.com Finally, if you find this information useful and end up purchasing a filter, please let them know that you found out about them here. Thanks for reading!

Single license Price Demo available? Support Virtual Servers? mod_rewrite script compatibility? regular expressions? Requires reboot for changes to take effect? Automated install? Support Forums? Thorough documentation?
IIS Rewrite $99* 200 manipulations, then must restart web server Yes Yes/Yes Yes No No Yes
ISAPI_Rewrite $69 30 day* * Yes Yes/Yes No Yes Yes Yes
OpUrl $45 14 day No? No?/Yes? Yes No Yes No
URL Replacer Free N/A No? No?Yes? Yes No No No
URL Rewrite $22**** No. No? No/No Yes? No No No
*limited time, $199 regular price.
** “Lite” version available as well for free.
***Only the “Lite” version supports automated install.
**** 22 Euros
? means I’m not sure

ColdLink

I wasn’t aware of an IIS solution to the hotlinking problem, but Bob knew of one called ColdLink which claims to “puts hotlinks on ice” hehe, now that’s a nice slogan!

ColdLink Bandwidth Protection Software gives you instant relief when hotlinks from bandwidth bandits get you hot under the collar.

The ColdLink iis isapi filter or apache module transparently maps and rewrites protected urls dynamically in realtime within every page served from your site. Your site continues to work normally, even when the pages are linked from search engines or other sites. Users can even bookmark your pages for later return because the page will contain new valid links.
Source: coldlink.com

Update: For those wanting to check if their current anti-hotlinking measures are working, here is an online anti-hotlinking testing tool. Just enter the URL of a protected image, on their easy to use web form and hit “check now” Finally, here is an example of a hotlink protected image now go to the original source page of that image to view it in its original context(you may have to refresh your browser.) Pretty nifty huh?! I’m not sure what software they’re using but it works well :-)

IIS Rewrite

What I’ve been using on my site for the past year, it has easily supported over a million rewrites without giving me an problems.

IISRewrite is a rule-based rewriting engine that allows a webmaster to manipulate URLs on the fly in IIS.

URLs are rewritten before IIS has handed over the request to be processed, so requests for HTML files, graphics, program files, and even entire directory structures can be rewritten before they are passed to ASP scripts for processing.

[. . . ]

IISRewrite is a stripped down implementation of Apache’s mod_rewrite modules for IIS. Webmasters who have used Apache’s mod_rewrite in the past will find that much of the configuration and functionality is the same.

OpUrl

ISAPI URL Rewrite

An ISAPI filter that provides powerful, integrated URL re-writing for IIS. OpUrl has many benefits, including helping to ensure search engines crawl even the dynamic parts of your site. Most search engine crawlers don’t index dynamic pages, e.g. page.asp?item=1 so OpUrl allows you to use static URLs instead. The functionality is very similar to Apache’s mod_rewrite

ISAPI Rewrite

ISAPI_Rewrite is a powerful URL manipulation engine based on regular expressions. It acts mostly like Apache’s mod_Rewrite, but is designed specifically for Microsoft’s Internet Information Server (IIS). ISAPI_Rewrite is an ISAPI filter written in pure C/C++ so it is extremely fast. ISAPI_Rewrite gives you the freedom to go beyond the standard URL schemes and develop your own scheme.

Here is what Joshua thought about ISAPI_Rewrite:

I’ve tried ISAPI_ReWrite (www.isapirewrite.com) and I like it. It seems comparable to IISReWrite, but here are some features I really like:
1. It’s free in it’s most basic form (one set of rules for every domain on the box). You have to buy it to set up rules for virtual domains, but it’s cheap.
2. The help documentation is really complete in regards to explaining the RegEx rules. I actually use the documentation as my daily RegEx reference.
3. Their support forums are decent. I got a couple answers within 24 hours.
4. * When you edit the config file, the changes are immediate * That means no having to restart anything when a rule changes. I know that IIS ReWrite requires a reboot of IIS every time you make a rule set change. The reason I like not having to restart anything is because I plan on making an online application to create rules on the fly.

Over on Web Master World forums another user also had good things to say about ISAPI_Rewrite.

ISAPI_Rewrite would be my suggestion. We’ve tested both IIS Rewrite and ISAPI. The ISAPI_Rewrite product outperforms the others due to its ease of configuration and a bunch of other little extras that come in handy. One of the biggest benefits we’ve found with ISAPI_Rewrite is that you don’t have to restart IIS each time you make a change to the .ini file

The ISAPI_Rewrite featureset sounds complete, and the documentation is thorough but not moreso than IIS_Rewrite.

URL Replacer

A new freeware rewriter that I just found out about, I don’t have any experience with it but if you’re looking for something to try on the cheap it might be your ticket.

The ISAPI filter replaces defined parts of URL from browser. It enables url to scripts (.asp, .cgi, .idc) with parameters look like static html pages or specify exact download filename generated by script.

Update 2006.March.28

LinkFreeze Description from the Helicon Tech website:

LinkFreeze is a fast and easy solution to optimize dynamic or database-driven website for search engines. It optimizes all dynamic links on your site removing all unwanted characters and making links look like static files. […] the main benefit of LinkFreeze is that you don’t need to change anything in your application to make it search engines friendly. LinkFreeze will modify all links directly before the server will send response to the client. So everybody – users, search engine crawlers or other robots will see the same nice statically looking links. And when somebody will navigate to this link LinkFreeze will intercept this request on the server and rewrite URL back to the dynamic form, so your applications will still thinking it is working with old dynamic links.

HotLink Blocker Description from the Helicon Tech website:

Hotlink Blocker is an IIS plug-in that will protect your web site from bad people stealing your traffic by directly linking to the content on your server. If you have an image collection, video or document archives, Flash games or any other downloadable content HotlinkBlocker is a right product for you. After installing HotlinkBlocker your site will continue working as before, all search engines and backward links will still be valid, all user’s favorites will remain working. But if someone tries to embed your stuff directly on their site, they will only see an error message or your site’s logo. You can save tons of traffic and thus the money. You can even turn these hotlinks into real visitors by redirecting hotlink request to your site’s homepage.

Updated 2003.Dec.05 with anti-hotlinking testing tool

One comment

  • J.D.

    Repost of old comments:
    1.
    Anonymous wrote:

    ISAPI_Rewrite does support automated install in both Lite and Full versions. Full version includes manual installation only in addition, when running automated installation is not possible.
    Monday, October 13, 2003 at 4:03 am #
    2.
    J.D. wrote:

    Thanks for the info about ISAPI_Rewrite 🙂 I updated the table to reflect it…
    Monday, October 13, 2003 at 11:09 am #
    3.
    Anonymous wrote:

    Another mod_rewrite for IIS http://www.iismods.com
    Wednesday, November 19, 2003 at 11:08 pm #
    4.
    Anonymous wrote:

    URL REWRITE by smalig.com doesn’t need reboot of the server after installation. It is simple ISAPI filter and need to be registered on IIS. The documentation will be delivered with ordered software.
    Wednesday, November 26, 2003 at 2:27 pm #
    5.
    Anonymous wrote:

    Smalig’s url rewrite module caused numerous problems from the get go include incorrect url parsing after a couple clicks, and page cannot be displayed messages thereafter.
    Wednesday, May 12, 2004 at 1:29 pm #
    6.
    Anonymous wrote:

    URL REWRITE is great!
    http://www.smalig.com/url_rewrite-en.htm
    Monday, July 26, 2004 at 2:32 am #
    7.
    Anonymous wrote:

    to Mike: hi, where did you find that URL Rewrite has problems with includes, etc.? IT’S NOT TRUE… for example, check http://www.tarkett-commercial.com. This web site has includes in every page and so far – no problems

    and google indexed it very well

    http://www.google.com/search?q=site:www.tarkett-commercial.com+tarkett&hl=en&lr=&ie=UTF-8&oe=UTF-8&filter=0

    BR,
    http://www.smalig.com
    Monday, July 26, 2004 at 2:40 am #
    8.
    Igor wrote:

    Hi everyone,

    I’ve installed UrlRewrite from Smalig. I had some problems initialy, with ColdFusion MX . (on cf 5.0 it worked from the first moment). UrlRewrite has to be registered in CF MX Administrator, I didn’t know that.
    But it works great: and I m using only and only incudes.
    So, till now I had links as:
    http://www.italy-holiday-accommodation.net/italy.cfm/italy.cfm?Latium&RegionID=7 (terrible?) (it doesn’t work anymore, i replaced that with UrlRewrite)
    but now it is seo much more friendly:

    http://www.italy-holiday-accommodation.net/web/florence/florence-holidays/accommodation/1145/florence-vacation-rentals/holidays.htm

    so now i have florence, florence-holidays, accommodation, vacation, rentals etc….. all virtual in the link and I could go on with adding more virt maps….

    it has been for a week on internet… we will see how google will react.

    There is another site: http://www.spain-holiday.com … they have a kind of system I wanted to have. So I called them, in Spain, asked if they wanted to sell it, yes they wanted. The price was 20 000 Euro. hm… it is just not normal.

    Kind regards,
    Igor
    Friday, December 10, 2004 at 11:45 am #
    9.
    Lenny wrote:

    I’m looming for a tool that will take words from a table that have links associated with them and automatically insert (rewrite) the text to be a hyperlink.

    If our editors write an article about texas and its posted, then when the web browser receives the page it is scanned for the word “Texas” and that word Texas is hyperlinked to a location that we specified in the table.

    This way we dont have to change our method of publishing, just add this to the area of the website that we want to be scanned for hyperlinks and then they are created as the page is sent out of the server.

    perhaps this would be an isapi filter? (We use IIS)
    Saturday, January 22, 2005 at 5:11 pm #
    10.
    sedgemonkey wrote:

    I’ve been really up in the air with this. I’ve been reading the forums of the ISAPI Rewrite and I don’t want to have to worry about a Service Pack or an OS change (Win 2000 to Win 2003) causing my entire site index to be invalid. I guess I’m just chicken. :p
    Thursday, May 12, 2005 at 4:18 pm #

Leave a Reply

Your email address will not be published. Required fields are marked *