Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6532507
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T10:00:42+00:00 2026-05-25T10:00:42+00:00

I don’t understand what real-world issues prevent a system from disallowing these kinds of

  • 0

I don’t understand what real-world issues prevent a system from disallowing these kinds of URLs?

http://www.washingtonpost.com/hey-this-url-doesn't-mean-a-damn-thing/gIQAocHrpJ_story.html

I understand what’s going on. The routing system looks for the key after the final backslash. And then it parses out what’s after the underscore to build out the version.

So:
washingtonpost.com/whatever/gIQAocHrpJ_story.html brings us the normal story version
washingtonpost.com/whatever/gIQAocHrpJ_print.html brings us the normal print version
washingtonpost.com/whatever/gIQAocHrpJ_mobile.html brings us the mobile xml version

Strangely, even changing that .html to another common extension, like .js or .xml or nothing at all, brings you back the same page. However, changing it to something non-standard, like .fffuuu alternatively brings you a human-friendly 404 page or a total blank page. It’s like the CMS programmer just whitelisted the first few filetypes that came to mind and had the system treat them all the same.

I’ve only built simple sites in Rails and WordPress, so I understand simple concepts about url patterns, such as how prefix constants can affect the lookup speed…but am I wrong in thinking that there is no rhyme or reason to the above design pattern?

Mind you, the Washington Post just recently completed a major redesign. This isn’t about trying to make do with a legacy system, their CMS designers apparently had the freedom to adopt modern best practices. I just don’t see the advantages of the url-design-pattern that they’ve adopted, except that the CMS designer doesn’t know any better.

How is their current system any faster than a database model that has a unique key and then a human-readable field?

http://www.washingtonpost.com/HUMAN-READABLE-KEY/UNIQUE_KEY.html

The pattern in between the domain backslash and the final backslash is the human readable key. The system finds a record with the UNIQUE_KEY and then sees if the human-readable-key matches what the DB has for that record.

I noticed that in the official version of the links, as they are generated from the homepage, include year/month/day information. Again, it’s meaningless, as you can alter those and get the same page (thankfully, no JS seems to depend on parsing those).

I’m guessing the CMS designer didn’t want to be bound by dates, as a news story could break on 8/20/2011 but the print version goes live on 8/21/2011…Sure, then just don’t have dates at all in the URL. If the URL can be changed to anything, then don’t train the user to expect document-specific information in it.

Not even the first term after the domain means anything. Therefore:

http://www.washingtonpost.com/politics/mitt-romney-debates-us-economy/gIQAocHrpJ_story.html

Goes to the same story as

http://www.washingtonpost.com/sex/mitt-romney-debates-us-economy/gIQAocHrpJ_story.html

And finally, doesn’t this play havoc with Google and other search engines?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T10:00:43+00:00Added an answer on May 25, 2026 at 10:00 am

    The key reason this is done is to make sure that if the headline changes readers can still get to the story. The “slug” (what you call the human readable key: mitt-romney-debates-us-economy) is usually auto-generated from the page’s headline or title text. In some older CMSes, where this wasn’t well thought out, changing the headline often left the URL the same (with the old slug in it). As you can imagine, at times, when the original headline was ill-chosen, this could be quite embarrassing.

    As a result, most CMS developers switched to looking up the story based on an ID, which it’s much easier to make sure doesn’t change. But then what to do with the slug? Some CMSes just ignore it; that’s the Washington Post’s approach.

    Another (pretty easy and probably better) solution is: When you find your story in the database, make sure the URL’s slug matches the story’s current slug in the database (based on the current headline). If it doesn’t, redirect the user to the correct URL. From the end user’s perspective, it’s seamless: You type in http://www.washingtonpost.com/hey-this-url-doesn't-mean-a-damn-thing/gIQAocHrpJ_story.html and when the page is done loading you’re at http://www.washingtonpost.com/politics/mitt-romney-debates-us-economy/gIQAocHrpJ_story.html

    Why the Washington Post isn’t doing that, I’m not sure; they have lots of smart people there, so there’s probably some excellent technical reason linked to their particular CMS (which I would guess is based on something they bought from a vendor). In other systems, the solution I’ve described can be done very easily (in Django, I’ve done it in three lines).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Don't think that I'm mad, I understand how php works! That being said. I
Don't know where else to ask, but from one day to the other my
Don't these two mean the same thing, first get the value and then increment?
don't understand: in my controller: @json = User.all.to_gmaps4rails do |user| \Title\: \#{user.email}\ end in
Don't understand, if Data.Map is and [] is. I found this out while wondering
Don't quite understand determinism in the context of concurrency and parallelism in Haskell. Some
Don't understand why #include <Header.h> is not compiling while #include Header.h is compiling with
Don't understand this simple code: def main(): print (This program illustrates a chaotic function)
Don't quite understand why this copy constructor is not invoked when I build with
don't know if the title describes anything about what I'm trying to say but

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.