Why to choose so hard way? It's not required to fix old links (but that's possible with simple Perl/PHP regex over DB). IMHO from the point of search optimizations it's better to return HTTP error 301 with new URL (i.e. redirect user / search bot there). It could be done very easy as well. In two words get numeric thread ID from old URL and create new URL based on it. So in my example you need to get "8413" from old URL - http://arkadiaforum.com/archive/index.php/t-8413.html And create new URL based on it - http://arkadiaforum.com/index.php?threads/8413/ And forum engine will redirect you to new full URL - http://arkadiaforum.com/index.php?threads/selling-arkadian-sooto-dehera-small-vase.8413/ Here simple example Perl script to do that (with hardcoded old URL and new URL template): Similar code (but in PHP) should be inserted in http://arkadiaforum.com/archive/index.php and it should return HTTP Error 301 redirect instead of print it. And if "Thread ID not found" it should return old error (like now). So it's few minutes fix. I don't know license on that engine and don't have PHP installed (I don't use it). But if you want and license allowed that, send me your /archive/index.php and I'll try to do that for you. For free, of course. And in case you really want to update old URL's and to do that via Web-interface (not via DB), it's way better and faster just to create WebCrawler bot, which will parse all old URL's (starting from thread ID) and update all links. P.S. One more bug - code tag missing.