Contemplating a move to a CMS can be paralyzing when you are dealing with an established educational site with thousands of static pages and even more incoming links. Is it worth breaking all of those to move to a modern platform? What do you do when you can't possibly upgrade everything at once? The Florida Museum of Natural History is in the middle of a multi-year transition to content management spread over three different production server environments. Get an overview of the challenges we were facing and then learn how we are making this all seamless to the visitor while keeping every old link to our 27,000+ pages intact. [Presented as a lightning talk at the HighEdWeb Florida Regional conference on April 23, 2013.]
1. The web is made of links.
Don’t break them.
A method to gradually transition a large site
to a CMS on your own timetable and keep it
transparent to your visitors while doing it.
2. We’ve had a website for a long time – since April 1995.
3. Our first sitemap. It’s a web of links! Get it?!? Guess what – it still is.
4. Upper level pages recently redesigned and using a CMS. Only 1% of total pages though.
5. Some of our 90’s-era sites still get a lot of traffic.
6. All of whom had varying web skills (if any) and were allowed to do anything they wanted.
115
known contributors
7. Defined as pages that have a different design then the top-level visit-oriented pages.
115
known contributors
88
current sub-sites
8. We’ve ended up with a LOT of content in 18 years.
115
known contributors
88
current sub-sites
27,482
total web pages
9. Plus an unknowable amount of browser bookmarks & print references.
115
known contributors
88
current sub-sites
27,482
total web pages
501,170
incoming links from other sites
10. Screenshots of our collection homepages in 2010. Definite branding and usability issues.
12. Um, yeah.
Reality check #1
We will never have enough time or staff
to update it all at once.
13. Time to panic.
Reality check #1
Any CMS we choose will have a different way
of writing links and will break our old URLs.
Reality check #2
We will never have enough time or staff
to update it all at once.
14. Don’t waste your time fighting this. Let your new CMS do its thing.
Bad idea #1: We have to get our new CMS
to follow our old URL scheme!
New: www.flmnh.ufl.edu/visit/shopping/butterfly-plant-sales/
Old: www.flmnh.ufl.edu/butterflies/plants.htm
15. This is not a solution. This still breaks stuff.
Bad idea #2: Let’s squirrel away all of our old
content to an “archive” area of the site!
http://archive.yoursite.org/old-stuff.htm
16. You’ll need to admin access to your servers to try this yourself.
This is how we handled it.
17. Just one CMS? Nah, let’s make it interesting and run two!
18. A reverse proxy allows multiple servers to deliver pages using the same URL space.
19. We chose to use Apache, but any reverse proxy/gateway will do.
20. Setting up a proxy on Apache is pretty simple, but read the documentation for more details.
Apache mod_proxy Module
RewriteRule (.*) http://www.flmnh.ufl.edu
ProxyPassReverse / http://iiswww.flmnh.ufl.edu
More info: http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
21. Tell the proxy what is on your legacy server and serve it immediately if there is a match.
22. Be thorough - list every possible legacy directory path in your conf file. (We have 137.)
Configuration File Rewrite Rules
RewriteCond %{REQUEST_URI} ^/annualreports(.*) [OR,NC]
RewriteCond %{REQUEST_URI} ^/anthro/caribarch(.*) [OR,NC]
RewriteCond %{REQUEST_URI} ^/caribarch (.*) [OR,NC]
RewriteCond %{REQUEST_URI} ^/bats(.*) [OR,NC]
RewriteCond %{REQUEST_URI} ^/birds(.*) [NC]
More info: http://httpd.apache.org/docs/current/configuring.html
24. If the page requested is not on the legacy server, send it on to your main CMS.
25. The CMS will serve the page if it is housed on that system.
26. If the page is not on your main CMS either, send it on for further processing.
27. Redirect app built in-house with PHP/MySQL backend using CakePHP framework for GUI.
28. The app can send it to other systems (if you go that route) or redirect offsite.
29. Be sure to terminate with a 404 if it truly is a bogus link.
30. Plug in your legacy/CMS situation and hopefully this can help you.
31. My awesome coworkers. Couldn’t have pulled this off without ‘em.
Credits
Taylor Wilson
Web Developer
Warren Brown
Enterprise Systems Coordinator
Andy Lievertz
Systems Administrator
32. Contact me if you have any questions or want more techy details.
Sarah Fazenbaker
sfaze@flmnh.ufl.edu
@sfaze
Thanks!