Pete Freitag Pete Freitag

Generic Search Engine Safe URL's on Apache

Published on December 01, 2003
By Pete Freitag
linux

A while back someone asked about implementing generic search engine safe url's with Apache's mod_rewrite module. I came up with a solution but I didn't have a chance to test it until recently. What I mean by generic are URL's such as: site.com/page.cfm/id/123 and NOT site.com/page/132, which would be specific to just one CFM template. So we only need to create the rules once. This is nice for sites with lots of templates because you don't need to create a rule for each template. Here's what you need to add in your Apache config:

RewriteEngine On
#with one url param
RewriteRule ^/(.*)\.cfm/([^/]+)/([^/]+)$ /$1\.cfm?$2=$3 [NE]
#two url params
RewriteRule ^/(.*)\.cfm/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ /$1\.cfm?$2=$3&$4=$5 [NE]

That code will work for up to two url variables, eg page.cfm/id/1/sort/price, if you need to support more you can just add additional rules. This can also work for php, jsp or whatever extension you want, just replace cfm with your extension.


Generic Search Engine Safe URL's on Apache was first published on December 01, 2003.

Weekly Security Advisories Email

Advisory Week is a new weekly email containing security advisories published by major software vendors (Adobe, Apple, Microsoft, etc).

Comments

If your host doesn't allow you to change apache config files you may still be able to do this in a .htaccess file.

There are some coding methods to do this as well, see: http://www.petefreitag.com/item/31.cfm
by Pete Freitag on 06/24/2005 at 9:41:48 AM UTC