Help with redirect from old to new URL

Francis Daly francis at daoine.org
Sun Sep 9 14:36:24 UTC 2012


On Sun, Sep 09, 2012 at 09:54:56AM -0400, kfawcett wrote:

Hi there,

> The only difference in the URLs is a switch from underscores to hyphens, and
> from /idx/ to /property/. 
> 
> Here is the old URL:
> http://www.mysite.com/idx/mls-5028725-10425_virginia_pine_lane_alpharetta_ga_30022
> 
> Here's the new URL:
> http://www.mysite.com/property/mls-5028725-10425-virginia-pine-lane-alpharetta-ga-30022
> 
> Any ideas how to redirect all of these URLs without knowing what every one
> of the 40,000+ URLs are?

Within "location /idx/", dynamically generate the new url, and issue a
redirect to that. "dynamically" means "use one of the embedded languages,
or else talk to an external server".

An incomplete example using fastcgi and php is:

file /tmp/idx-fixup:
"""
<?php
$old = $_SERVER[REQUEST_URI];
$new = str_replace('_', '-', $old);
$new = substr_replace($new, '/property', 0, 4);

header("Status: 301 Moved Permanently");
header("Location: $new");
?>
"""

fragment of nginx.conf:
"""
        location /idx/ {
            include fastcgi.conf;
            fastcgi_pass  unix:php.sock;
            fastcgi_param  SCRIPT_FILENAME    /tmp/idx-fixup;
        }
"""

Good luck with it,

	f
-- 
Francis Daly        francis at daoine.org



More information about the nginx mailing list