Redmine 0.9.0 and duplicate content issue

December 29th, 2009 at 11:11 pm • permalink2 comments

A couple of hours ago I upgraded the code domain from Redmine 0.8.0 to Redmine 0.9.0, currently available in pre-beta.

Redmine 0.9.0 offers tons of improvements but one among all forced my decision to upgrade without waiting for a final release: Rails 2.3.5. Redmine 0.8.x is built on Rails 2.1.0 and there seems to be some kind of weird Rails-Redmine-Passenger-Ruby EE memory leaks.

With the new release, Redmine has changed the most part of its URLs. The development team basically migrated all routes to a more RESTful-oriented architecture. They did a wonderful job, unfortunately they probably chose the worst way to ensure backward-compatibility: duplication.

All the old routes are still available along with the new ones and this can cause several duplicate content issues. To patch the problem, I configured some Apache redirection rules in order to permanently redirect the old URLs to the new ones.

The gist doesn’t pretend to solve all issues. It’s just a quick and (quite) dirty fix.

From Redmine side, I would have setup a Rails Metal to redirect all the old URLs to the new ones. This is not as efficient as relying on the web server, but this is compatible with any user environment.

Feel free to fork, clone and update the gist. After all, this is a Git repository!

  1. Configuring a Git repository with Redmine
  2. Generic Apache configuration snippets
  3. Upgrading to Rails 3: You are using the old router DSL which will be removed in Rails 3.1
  4. Ruby Net::DNS 0.6.1 released
  5. Apache .htaccess query string redirects

Filed in Programming, Server / Apache, Softwares • Tags: , , ,

Comments

Felix says:

I don’t want to seem pedantic here, but you could have filed a feature/bug for this, or maybe even a patch :-) On the other hand, you are right that the routes in redmine are a mess right now, maybe we could get this fixed for 1.0.

I’m used to file bugs and submit patches to Redmine but I wanted to wait for the final release before formulating a full ticket.

Add a Comment




Follow Me
    Random Quote