Generic Search Engine Safe URL's on Apache

December 01, 2003

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: and NOT, 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.

Like this? Follow me ↯

12 people found this page useful, what do you think?


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:

Foundeo Inc.