Howto: Future-proof URLs in Movable Type

Written June 22. 2003, at 17:15 GMT.

Movable Type is a wonderful tool, but it doesn't really create the most future-proof URLs. Being the permalink enthusiast I am, I set out to make my own weblog URLs totally future-proof, and have now decided to share what I learned with the rest of you.

Note: if you are relatively tech-savvy and have the access privileges needed to tweak your web-server directly, then I suggest you also check out Mark Pilgrim's more elegant solution to this same problem.

The Steps

  1. Think
  2. Fix the "Archive File Templates"
  3. Use Regex to Remove the "index.html" Part
  4. Clean Up The "Trackback Pings"
  5. Fix the Comment URLs
  6. Fix the Comment-Posting Redirect

Step 0: Think

To make your weblog URLs really future-proof you have to make sure they don't contain either of the following:

  1. File-extensions (.html, .php, .asp, etc.) as you might wish to switch between different server-side solutions at some point in the future. Showing your programming environment in your URLs is bad.
  2. Any reference to some internal ID schema unique to your current weblog tool. Cryptic IDs are bad.

This means that the default permalinks created by Movable Type (e.g. are not future-proof at all.

Now, if MT's internal IDs are bad, then what do we use instead?

Using an automatically "dirified" version of the entry title, is a popular option, but it has a few drawbacks that must be taken into account. First, the "dirify" function doesn't work very well for languages that use non-english characters (think Chinese, Arabic, Russian, Icelandic, most Eastern-European languages, etc.) and second it means that if you ever choose to modify the title of an weblog entry, links will break all over the place. Thus, despite the fact that URLs with 14 numbers may look a bit daunting, using EntryDate to identify the entry is a much safer, more future-proof choice. (There is also the issue of very long titles resulting in uncomfortably long URLs, but that can be avoided by truncating the title at N characters.)

Here's a step-by-step guide to Future-proof weblog URLs, based on my own experiments for this MT weblog. (At the time of this writing I'm using MT version 2.64)

Step 1: Fix the "Archive File Templates"

Here are useful examples of future-proof "Archive File Templates" for Movable Type using EntryDate. You can copy-paste these into the form-fields on the "Weblog Config -> Archives" page.

  • Individual Archive: <$MTEntryDate format="%Y/%m/%d/%H.%M.%S"$>/index.html
  • Daily Archive: <$MTArchiveDate format="%Y/%m/%d"$>/index.html
  • Monthly Archive: <$MTArchiveDate format="%Y/%m"$>/index.html
  • Category Archive: <MTCategoryLabel dirify="1">/index.html

All the above archive URLs end with the filename index.html because this allows us to cut the filename off the end of the URL, and thus hide the file-extension d'jour. Note that you must change the ".html" part into ".php", ".asp", or whatever fits your web server setup.

Step 2: Use Regex to Remove the "index.html" Part

Download and install Brad Choate's Regex Plugin for MT (also available at Then place the following declaration near the top of your MT Templates:

<MTAddRegex name="stripFile">s|/index\.[^/]+$|/|g</MTAddRegex>

And then you must use the Global Tag Attribute regex="stripFile" every time you print a URL to your archives. Example:

<a href="<$MTEntryLink regex="stripFile"$>">The Entry</a>
<a href="<$MTArchiveLink regex="stripFile"$>">June Archive</a>

This will produce nice and clean URLs that look like this:

  • Individual archive:
  • Daily archive:
  • Monthly archive:

Step 3: Clean Up The "Trackback Pings"

Then there's the problem of trackback pings. MT's trackback engine automatically sends the contents of <MTEntryPermalink> and thus you need to make some changes to the MT source code to make sure that the permalinks are "naturally" clean:

  1. Locate the file [MT-folder]/lib/MT/ and open it in a text editor. (Remember to create a backup copy of the file first.)
  2. Search for sub archive_url and at the end of that function remove this line:

    $url . $entry->archive_file(@_);

    ...and add these instead:

    $url .= $entry->archive_file(@_);
    $url =~ s|/index\.[^/]+$|/|g;
  3. Search for sub permalink and at the end of that function remove these two lines:

    $url .= '#' . sprintf("%06d", $entry->id)
        unless $blog->archive_type_preferred eq 'Individual';

    ...and add these instead:

    my $edate = $entry->created_on;
    my $timeid = 'h' . substr($edate, 8, 2) . '.' . substr($edate, 10, 2) . '.' . substr($edate, 12, 2);
    my $dayid = 'd' . substr($entry->created_on, 6, 2);
    if (($blog->archive_type_preferred eq 'Monthly') or
        ($blog->archive_type_preferred eq 'Weekly')
        ) {
      $url .= '#' . $dayid . $timeid;
    if ($blog->archive_type_preferred eq 'Daily') {
      $url .= '#' . $timeid;

    (Hat tip to Kristjn for the help with this hack.)

  4. Save the file and you're done. Now MT sends clean Trackback URLs.

The permalinks sent by MT's Trackback engine will take the following form, depending on your preferred archive type:

  • Individual archive:
  • Daily archive:
  • Monthly archive:

Note: If you wish to use <MTEntryPermalink$> in your file Templates, you can skip the regex="stripFile" rule explained above. However, using the archive_type="" attribute to switch between different forms of MTEntryPermalink will not work as intended, so you must create your own regex rules to produce the #XXX part of the URLs.

Step 4: Fix the Comment URLs

Next you have remove the MT comment IDs from your "comment permalinks". Despite the increased "ugliness" it's probably best to identify specific comments by using a full date and time stamp (yes, another 14 digits). The time-stamp is pretty much unique and easily re-created in other blogging tools (if you should later choose to stop using MT).

Another, and much "nicer looking", option would be to use the numeric position of the comment in the list of comments, but this method is prone to break if you choose to moderate your discussion or clean up after (accidental) comment-spammers. So the full timestamp is probably your best bet.

After the change your normal comment permalink should look like this:

Somewhat unwieldy but not very likely to change - ever. Here's an example MT code to generate this URL:

<a href="<$MTEntryLink regex="stripFile"$>#reply<$MTCommentDate format="%Y%m%d%H%M%S"$>">#</a>

Step 5: Fix the Comment-Posting Redirect

Whenever users post comments, they're redirected to a URL that points directly at the comment they posted. This particluar permalink is generated automatically deep inside MT's source code, so again you need to do some hacking:

  1. Locate the file [MT-folder]/lib/MT/App/ and open it in a text editor. (Remember to create a backup copy of the file first.)
  2. Search for sub post and a bit further down you should find the following line:

    $link_url = $static . '#' . $comment->id;

    Remove it and add the following line instead:

    $link_url = $static . '#reply' . $comment->created_on;
  3. Save the file and you're done.

Now you're all set, and your weblog should have nicely future-proof URLs all around.

More like this: English Entries, Movable Type, Varanleiki & URL, tgfa.

Reader Comments (121)

  1. Jsi replies:

    Since I dont post to my weblog every single day, Ive always wanted my URLs to be a perfect version of the default setup in MT, ie. my first post is 1.html, second 2.html and so on. The problem is that since I have multiple weblogs running under MT they share a same series of unique IDs; 00032 could be in one weblog and 00033 in another. Im therefore looking for a different solution, perhaps using <$MTEntryKeywords$> could do the trick? The only drawback is that I would have to manually write a desired URL in the keyword field for each of my >100 entries...

    June 26. 2003 kl. 08:46 GMT | #

  2. Mr rlygsson replies:

    Jsi, your posting habits may change. Some day you may start to post more often, and then you will be glad you placed the publishing date and time in your Archive URLs. That's one of the reasons I call them "Future-proof" :-)

    But then again, you can always go for the mixed approach, appending a "dirified" version of the entry title to the publishing date (i.e.

    This should work reasonably well if you're willing to go through the bother of hacking the dirify function in [MT-folder]/lib/MT/ so that it translates the Icelandic characters "" and "" correctly.

    Another option, as you suggest, is to manually enter a human-readable ID for the entry. If you choose to do this you might be better off using the KeyValues plugin for MT (

    June 30. 2003 kl. 23:23 GMT | #

  3. Jsi replies:

    Your logic is a bit self-serving; My posting habits may change to suit your method so I should start using it now! What if they dont? Even if I start posting daily, my posts arent neccessarily about daily events; I frequently write about events that took place months or years before. I dont consider dates to be a fundamental part of my blog, but I want them to be accessible as metadata about each post. Even if a website uses blog-based web management tools like MT, that doesnt mean that date-based URLs are necessarily right for it...

    July 4. 2003 kl. 03:36 GMT | #

  4. Mr rlygsson replies:

    "Your logic is a bit self-serving; My posting habits may change to suit your method so I should start using it now!"

    Jsi, how incredibly nice of you to interpret the intent of my advice this way. Thanks.

    Hey, if you're totally against using date-based info to uniquely identify your blog-entries (despite the fact that it has several advantages over the other ID schemas available in most Blogging tools), then just say so and move on.

    I also mentioned two alternate ways of forming unique URLs, but I guess they weren't of much help to you either.

    July 4. 2003 kl. 04:26 GMT | #

  5. More Permalink Thoughts

    "Joi Ito is thinking of transferring his weblog to his pad but is concerned about what will happen to his..." Read more

    July 14. 2003 kl. 14:29 GMT | #

  6. Radio Free Blogistan: Tackling the MT permalink problem

    "Már Örlygsson explains How to future-proof URLs in Movable Type." Read more

    July 14. 2003 kl. 18:54 GMT | #

  7. : Sideblog: Future-proof URLS?

    "Howto: Future-proof URLs in Movable Type..." Read more

    July 16. 2003 kl. 15:09 GMT | #

  8. curious frog: links: Howto: Future-proof URLs in Movable Type

    "Howto: Future-proof URLs in Movable Type..." Read more

    July 22. 2003 kl. 03:07 GMT | #

  9. filchyboy replies:

    When you say "Place the following declaration near the top of your MT Templates:

    <MTAddRegex etc etc

    Where exactly are you referring to? Within the <head>? In the <body>? Above the doctype declaration?

    Please advise.

    July 24. 2003 kl. 17:57 GMT | #

  10. Mr rlygsson replies:

    Preferably below the Doctype (some stupid browsers seem to freak out if there are empty lines before the doctype declaration).

    Anywhere else should do fine, just as long as you make sure that the <MTAddRegex ...> comes before you use the regex rules in the code.

    July 24. 2003 kl. 18:10 GMT | #

  11. the golden path: Transmogrify your blog

    "Some insight into the construction of this site with a smattering of tips and tricks..." Read more

    July 28. 2003 kl. 20:11 GMT | #

  12. Braintags: Making future-proof archive links

    "Mr rlygsson has written a howto on creating 'future-proof' URLs in Movable type. In short, he suggests storing individual archives at The archive file will be called index.html. I like this idea, s..." Read more

    July 31. 2003 kl. 15:46 GMT | #

  13. xian replies:

    What about when there are more than one post in a day? How do you distinguish them?

    August 3. 2003 kl. 09:51 GMT | #

  14. Mr rlygsson replies:

    Xian, Did you mean to say "when there is more than one post per second ?" The URLs are fine-grained down to the second you posted the entry, which should be more than enough for most sites. If you feel that one-second units aren't unique enough for your posting pattern, then you should probably go for a different method, although one can always fix the occasional date-time clash manually when it occurs.

    August 3. 2003 kl. 13:10 GMT | #

  15. Simplifying a URL

    "Back in the old days (prior to 1999) when my favorite web-editing tool was Netscape Composer, I would always design..." Read more

    August 4. 2003 kl. 16:56 GMT | #

  16. Matthew Thomas: How to recognize a Weblog tool by its permalinks

    "Cruft is any part which is an artifact of the Weblogging software, meaningless to most humans, while decreasing usability by making the URI unnecessarily long." Read more

    August 4. 2003 kl. 18:07 GMT | #

  17. CTDATA: Changing Weblogging Tools Can Be a Royal Pain

    "When you start your weblog, make sure you think about the future value of your content, and what you will do to preserve that value if you ever have to change weblog tools or migrate from one server to another." Read more

    August 4. 2003 kl. 18:13 GMT | #

  18. Mathemagenic: Future-proof URLs in Movable Type

    "Future-proof URLs in Movable Type" Read more

    August 4. 2003 kl. 19:02 GMT | #

  19. Roland Tanglao: Future-proof URLs in Movable Type

    "TITLE: Future-proof URLs in Movable Type URL: IP: BLOG NAME: Roland Tanglao DATE: 08/04/2003 08:32:26 PM" Read more

    August 4. 2003 kl. 20:32 GMT | #

  20. Smart URLs

    "Howto: Future-proof URLs in Movable Type For the impending redesign I’d like to redo the structure of my site, but my biggest fear is breaking links for those who bookmarked a certain section or come in from Google. Any ideas?..." Read more

    August 4. 2003 kl. 21:10 GMT | #

  21. Dichotomy's Purgatory: File Extensions on Blog Entries Do not Leak Implementation Details

    "(... or, at least, leak no more implementation details than any other method.) There has been a couple articles concerning..." Read more

    August 5. 2003 kl. 21:44 GMT | #

  22. Mr rlygsson replies:

    I posted the following reply on Dichotomy's Purgatory:

    True, file extensions don't really have to leak any implementation details, and ".html" is probably one of the best (i.e. transparent/descriptive) extension you can choose for your URLs.

    However, the problem with extensions is that most end-users don't have access priveleges to do fancy webserver configs and mod_rewrite tweaks, and/or don't have the technical know-how required.

    So when it comes to "upgrading" their blog from static .html files to something more dynamic like PHP or ASP (or whatever system their hosting service provides them with) most users are going to see their permalinks change accordingly.

    You are getting it, and you seem to be someone who'll be able to maintain the integrity of your .html permalinks no matter what programming environment you use. My Howto article was mainly intended "for the rest of us". :-)

    P.S. Thanks for the pushback.

    August 6. 2003 kl. 01:45 GMT | #

  23. Men at Work

    "I’ve implimented better a better URL scheme, thanks to some help. Looky: Things will no doubt be broken but a clean break now is better then none at all...." Read more

    August 6. 2003 kl. 01:57 GMT | #

  24. Mr rlygsson: URL-Design Links and News

    "Last week, Nathan Ashby-Kuhlman wrote an excellent series of articles where he takes a look at a bunch of different News websites, and reviews and rates how well their article URLs are designed. There are altogether 8 articles in the..." Read more

    August 6. 2003 kl. 02:50 GMT | #

  25. Keith Devens .com: Future-proof Movable Type URLs

    "Via James, a tutorial on how to Future-proof URLs in Movable Type. This is a great idea. I never realized this could be done with MovableType, and I also never considered using a timestamp as a permalink. That might be a good thing to do in general if ..." Read more

    August 6. 2003 kl. 03:57 GMT | #

  26. More on URLs [...]

    "Mar Orlygssons Howto: Future-proof URLs in Movable Type advocates date-based URLs and argues for them well." Read more

    August 6. 2003 kl. 04:02 GMT | #

  27. Brainstorms and Raves: Friday Feast #55: Friendly, Lasting URLs

    "Setting up a new website or a redesign for a client or yourself most likely includes considering the URLs for all the pages. If URLs are auto-generated by software, changing software might result in all those URLs changing, thus breaking incoming links..." Read more

    August 10. 2003 kl. 07:24 GMT | #

  28. hit-or-miss quicklinks: Howto: Future-proof URLs in Movable Type

    "" Read more

    August 12. 2003 kl. 01:57 GMT | #

  29. ext|circ: Housekeeping

    "The slightly more astute/anal/bored among you will have noticed that the individual entry archives have now moved from Movable Type's..." Read more

    August 12. 2003 kl. 23:07 GMT | #

  30. Eliot: Cleaning up...

    "Still a few things to do with my blog: Edit any old entry that references an Amazon item to use my new tag (see previous post); Future Proof my URLs; Make a new..." Read more

    August 13. 2003 kl. 08:12 GMT | #

  31. Braintags: Making future-proof archive links

    "Mr rlygsson has written a howto on creating 'future-proof' URLs in Movable type. In short, he suggests storing individual archives at The archive file will be called index.html. I like this idea, s..." Read more

    August 13. 2003 kl. 17:07 GMT | #

  32. Michael Z. replies:

    If one needed to help justify such a URL scheme, one could read Tim Berners-Lee's Cool URIs don't change, where he advocates a similar scheme for all web sites, not just weblogs.

    August 13. 2003 kl. 17:13 GMT | #

  33. Snapping Links II (The Revenge): how to...

    "make your site better, future-proof URLs and write PHP libraries." Read more

    August 13. 2003 kl. 23:28 GMT | #

  34. Our Story: PHP Juice

    "I wanted to future-proof the URL structure from any future changes I might make to the site (like if I ported over ASP.Net or somethinggack!). A search for future-proofing URLs in Movable Type brought me to Mr rlygssons helpful tutorial." Read more

    August 15. 2003 kl. 13:14 GMT | #

  35. zlog - posts: URLs URLs

    "Today, like many others before me, I decided to change my archive URL format -- don't worry, the old URLs still work. The design I settled on was /archives/YYYY/MM/POST_TITLE or KEYWORD. I think this is the most accurate and future..." Read more

    August 15. 2003 kl. 13:50 GMT | #

  36. protocol7: Better URLs

    "For a long time I've been unhappy with the URL scheme that MT comes with (and that I've used for" Read more

    August 17. 2003 kl. 00:13 GMT | #

  37. coming soon: friendlier rawbrick urls

    "URLs are nice when they're easy to parse and get you what you want without too-local idiosyncracies and are semi-permanent and lend themselves to a certain kind of interoperability." Read more

    August 19. 2003 kl. 11:32 GMT | #

  38. Petroglyphs: De-cruftified

    "Ive just finished de-cruftifying Petroglyphs, inspired by Mark Pilgrim and based on the work of Mr rlyggson. To my view at least, all my URLs are cool and the weblog as a whole is non-application-specific." Read more

    August 19. 2003 kl. 11:33 GMT | #

  39. Filter Pad: Yeah, I Was Going To Say That

    "If you are (a) anal-retentive, (b) quite geekish and (c) have a lot of time on your hands, then you may be interested in reading Cruft-free URLs in Movable Type, Howto: Future-proof URLs in Movable Type and possibly How to recognize a Weblog tool by it..." Read more

    August 19. 2003 kl. 11:35 GMT | #

  40. Troy Farrell replies:

    Je ne suis pas le meilleur tudiant de franais, mais je crois que la phrase ci-dessus faut etre "en anglais, s'il vous plait."

    I'm not the best French student, but I think the phrase above should read "en anglais, s'il vous plait."

    On topic: Thanks! This is great. I'm working on archiving several dynamic pages and this is a great help to me.

    My 0.02.


    August 22. 2003 kl. 19:06 GMT | #

  41. Bryce Yehl: Distractions

    "My weblog goes future-proof and cruft-free while migrating to a PHP + RSS + XSLT back-end." Read more

    August 22. 2003 kl. 20:21 GMT | #

  42. weblog: friendly booklist urls

    "This is a follow-up to my first post on giving friendlier urls, when I future-proofed the weblog links. Got around to doing mostly the same for the booklist this weekend, but also wanted to try the new wrinkle..." Read more

    August 25. 2003 kl. 02:33 GMT | #

  43. Reference, Brainstorms and Raves: Reference

    "I've provided a few templates below that I've mentioned in email or elsewhere. Please refer to the Movable Type Documentation and Movable Type Forums, as most questions are already answered there. If you have questions specific to these templates, plea..." Read more

    August 26. 2003 kl. 11:57 GMT | #

  44. Brainstorms and Raves - Explore: Movable Type Templates

    "Movable Type Templates Individual Entry RedirectRequires a few common plugins and macros: Brad Choate's MTMacros and Regex plugins; Mark Pilgrim's macros module, and the use of the Regex stripFile. RSS - Complete PostsLike the above template, this one ..." Read more

    September 1. 2003 kl. 01:52 GMT | #

  45. Vefdagbok Tryggva: Smvgilegar breytingar tenglum

    "g kva a gera beinar tilvsanir athugasemdir (comment) og tilvsanir (trackback) agengilegri sunni hj mr, aallega sjlfum mr til ginda egar g er a vsa svr annarra vi hlutum sunni hj mr. g fr ekki alveg eftir Future-Proof..." Read more

    September 4. 2003 kl. 00:51 GMT | #

  46. Track replies:

    Step 4: Fix the Comment URLs

    where would i go about editing that? the instructions for that step are a bit unclear for me :(

    September 14. 2003 kl. 10:26 GMT | #

  47. Mr rlygsson replies:

    Hi Track. Step 4 is primarily about defining a standard format for pointing to individual comments within the list of comments for a given weblog entry.

    To enable linking to individual comments you must a) place something like <a name="[anchor]"> or add id="[anchor]" attribute to the HTML tag containing the comment) and b) provide comment-permalinks that use that point to #[anchor]

    All this you have to do in your Individual entry template. (You can use the HTML source code of this page for reference.)

    Hope this helps.

    September 14. 2003 kl. 11:44 GMT | #

  48. Track replies:

    Thanks for the info Mr, it cleared things up for me :)

    i put:

    <MTComments> <a name="<$MTCommentDate format="%Y%m%d%H%M%S"$>"></a>

    <div class="comments-body"> and I edited your step4 to:

    <span class="comments-post">Posted by: <$MTCommentAuthorLink spam_protect="1"$> at <$MTCommentDate$> | <a href="<$MTEntryLink regex="stripFile"$>#<$MTCommentDate format="%Y%m%d%H%M%S"$>">Link</a></span> </div>


    the "#" sign is a bit ugly :P great tutorial though (except for that unclear step4, also you might want to add in step2, the exact location of where you have to put the " <MTAddRegex name="stripFile">s|/index.[^/]+$|/|g</MTAddRegex>" someone asked in the replies so that's how I confirmed where to put it (in my case I put them in all templates under the "<head>" tag.

    otherwise all was pretty easily installed.

    September 14. 2003 kl. 13:47 GMT | #

  49. 內部整修中

    "MT 再設定。問題是我不喜歡路徑太多 folder 也沒有「隱匿 server 技術」的必要陽春..." Read more

    September 15. 2003 kl. 09:26 GMT | #

  50. Roland Tanglao's Weblog: Future-proof URLs in Movable Type

    "(SOURCE: Howto: Future-proof URLs in Movable Type | Mr rlygsson (June 22." Read more

    September 15. 2003 kl. 11:22 GMT | #

  51. inluminent: linkdump

    "Long overdue (sorry for dumping so many links in one post). Design and Development: Information Pollution #26 - The myth..." Read more

    September 18. 2003 kl. 00:55 GMT | #

  52. halla's favorite places: Future-proof URLs

    "Future-proof URLs..." Read more

    September 22. 2003 kl. 10:44 GMT | #

  53. » LittleThinkTank Elsewhere «: Future-proof URLs

    "A guide to making things work, tomorrow" Read more

    September 22. 2003 kl. 13:49 GMT | #

  54. Faking the UWS with MT

    "Without addressing all the issues that Matthew brought up with his ultimate Weblogging system, these are a few tricks I..." Read more

    September 24. 2003 kl. 23:40 GMT | #

  55. Aigeanta's Journal: Look and Feel

    "Aigeanta has a new URL, a new style, and a new Journal powered by Movable Type. I have set up permalinks and SimpleComments, and freiheit patched our MT installation so that entries are automatically rebuilt after trackback pings are received...." Read more

    September 25. 2003 kl. 23:36 GMT | #

  56. Brainstorms and Raves: More on Friendly URLs

    "Friendly, lasting URLs are easy enough to manage when you create the site architecture and URLs yourself, but with the increasing popularity of weblogs and content management programs there's been increasing interest in what can be done to ensure frien..." Read more

    September 28. 2003 kl. 23:29 GMT | #

  57. Dewayne Mikkelson and his Radio WebDog, Shadow: Lots of links from inluminent

    "Source: inluminent Long overdue (sorry for dumping so many links in one post)." Read more

    October 4. 2003 kl. 23:37 GMT | #

  58. Vefdagbok Tryggva: Breytingar tenglum

    "Tenglar tenglasafni uppfrir framtarhelt form: dagar, mnuir og flokkar a forskrift Ms." Read more

    October 6. 2003 kl. 09:53 GMT | #

  59. the humdrum: Shaving cruft

    "Thanks to "Dive Into" Mark and "Shifty Eyes" Mr rlygsson, I've updated my blog with a (nearly) cruft-free, dirified archiving convention. My lazyweb request: how do I strip the "/index" from the monthly archive links? The pages work without the..." Read more

    October 9. 2003 kl. 22:07 GMT | #

  60. Flexistentialist: New Archive URLs

    "In case you are interested, there is a new format for the archive URLs. Instead of looking like, which..." Read more

    October 13. 2003 kl. 03:07 GMT | #

  61. Emmanuel's Link Flow:

    "Howto: Future-proof URLs in Movable Type..." Read more

    October 13. 2003 kl. 20:38 GMT | #

  62. snapturtle blog: Adding Some Style To MT

    "Over the last few evenings I’ve been adding some new things to the site, mostly stuff no one will notice but cool none the less. I’ve been getting really sick of looking at those standard Moveable Type permalink URLs so..." Read more

    October 17. 2003 kl. 03:47 GMT | #

  63. Radio Free Blogistan: Combatting linkrot in MT

    "Brad DeLong quotes Kevin Drum ("What a mess. A combination of host problems and Movable Type fragility wiped out my site for the entire day. I'd bore you with all the details, but I'm too pissed off right now to write about it. ... Also, all my permali..." Read more

    October 18. 2003 kl. 15:36 GMT | #

  64. Your Guess Is As Good As Mine: Future-Proofing

    "Ho much to future-proof my weblog?" Read more

    October 19. 2003 kl. 18:01 GMT | #

  65. TeledyN: MT Performance Boundaries

    "ThatAdamGuy is having some troubles with MovableType performance on large blogs, specifically a mysterious slowdown in his comments-posting: Is my assumption -- that MT's structure by default leads to horribly slow rebuilds..." Read more

    October 23. 2003 kl. 05:45 GMT | #

  66. bryce replies:

    A friendly heads up:

    It's ironic that the link to your "non-permanent permalinks" entry is itself broken. I suspect it's just a typo... you forgot to add the "mar" directory.

    Once again, thanks for the helpful info.


    October 26. 2003 kl. 21:20 GMT | #

  67. Movable Type Blog Migration

    "Over the last week, usually in the mid-to-late evenings -- after Catherine falls asleep, I have been slowly migrating my B2-based blog to Movable Type. I must say that for the most part the process has been fairly straight forward...." Read more

    October 28. 2003 kl. 17:00 GMT | #

  68. I Kill Spies: Future-proofing Movable Type

    "" Read more

    October 29. 2003 kl. 19:44 GMT | #

  69. curi's domain: i'm teh hax0r

    "seriously though, i had to edit some .pm perl file (my perl experience consists of reading part of an intro and making a program that printed out everything in an array, w00000) that's part of movable type's code. now, you..." Read more

    November 3. 2003 kl. 06:48 GMT | #

  70. Design MT: Permalinks?

    "From Morgaine... speedysnail · july 2003 archives The problem is that if you run more than one blog on the same install of MT, a new entry in any one of them increments the same central count. So blog A..." Read more

    November 4. 2003 kl. 01:17 GMT | #

  71. grapefeed: Bring On the Jolt Cola!

    "I think part of the reason why I'm not updating this blog as much as I should (or want to)..." Read more

    November 7. 2003 kl. 04:10 GMT | #

  72. I Kill Spies: Heavy Duty MT mods

    "Complete the "future-proofing" of MT individual archives. This involves using the Regex plugin, but also potentially modifying the "trackback" and "comments" portions of MT- I have to change these in a way which doesn't break all the other blogs on the..." Read more

    November 10. 2003 kl. 21:06 GMT | #

  73. I Kill Spies: nTag hijynx

    "Mr rlygsson is my new hero- not only did he come up with the "future proofing" how-to but he also has things like the nTag hacking story on his site. Plus his commentary just cracks me up. Apparently nTag is like a badge for expo attendees, crossed w..." Read more

    November 11. 2003 kl. 02:47 GMT | #

  74. Snappy the Clam: An improved bivalve

    "Well, after having some trouble with the old digs, I am back, now with an actual domain name. I am also using the excellent hosting services at Cornerhost, and hopefully will be writing more to justify all this trouble and..." Read more

    November 19. 2003 kl. 22:12 GMT | #

  75. Snowblink: Permanent Links

    "I was looking for something completely different when I stumbled upon: Howto: Future-proof URLs in Movable Type. I've now updated my links. My only concern is what to do with the trackbacks already in existence......" Read more

    November 20. 2003 kl. 16:13 GMT | #

  76. jeremy replies:

    I have gone through your howto and found it easy to follow and implement. However, when I try to add comments, I get this error: An error occurred:

    Invalid entry ID '1'.

    This is a new MT install and I've got some test entries and comments on another weblog. The problem is at:

    Since the problem didn't exist before I went through the howto, I'm assuming I did something wrong along the way. I haven't found my mistake yet and wondered if you had some ideas.


    November 25. 2003 kl. 03:02 GMT | #

  77. jeremy replies:

    Whoops, I figured it out. Dumb mistake... I had left a static entry_id in one of the forms that didn't exist anymore.

    thanks for the howto!!!

    November 25. 2003 kl. 03:11 GMT | #

  78. intruder's register: tuning movabletype

    " . , , . . ( !) ..." Read more

    November 27. 2003 kl. 14:29 GMT | #

  79. Articles: Cruft-free URLs

    "I just reconfigured my Movable Type blog to use cruft-free URLs. The basic premise is to clean up your URL scheme by removing non-essential information, thus ensuring that your links will live on in the future as you evolve with..." Read more

    December 4. 2003 kl. 07:30 GMT | #

  80. Words at Arrakeen: Some URL Changes and a Facelift

    "The snow invariably leads to getting some things done with neglected projects, so I have merged some of the ideas from my experimental websites into my personal website: a) I've switched over to cruft-free URLs with Moveable Type. This is..." Read more

    December 6. 2003 kl. 01:39 GMT | #

  81. AJ replies:

    Curious if anyone has an idea on how to modify the calendar to display the daily archive instead of the individual archive (ie the entrylink or permalink). The archive list function doesn't seem to work inside the calendar tags and using permalinks means you are linking to only one of your entries that day.

    December 15. 2003 kl. 18:49 GMT | #

  82. How Now, Brownpau?: Future Future-Proofing

    "After reading up on future-proofing MT URLs, and a brief email exchange with Ben about trackback permalink anchors, I think individual entry archives may be..." Read more

    December 22. 2003 kl. 23:10 GMT | #

  83. Bryan Helmkamp's Weblog: Movable Type PermaLinks solution

    "When I went searching for a way to make MT use good PermaLinks I found two (partially overlapping) techniques: Már Örlygsson's and Mark's. Both of them had useful information but neither did exactly what I wanted. Actually, Mark's site uses..." Read more

    December 25. 2003 kl. 07:21 GMT | #

  84. timsamoff replies:

    Hello... Thank you so much for coming up with this great MT hack... It will save me a lot of hassle in the long-run (though, I with I would have come across it sooner!). I think that MT should implement something like this as default functionality, but we'll see...

    I have a problem, though... I've done everything as indeicated, but my Trackback URLs have not change... Is there something that I need to do to the TB URL in my templates?


    <a href="<$MTCGIPath$><$MTTrackbackScript$>?_mode=view&entryid=<$MTEntryID$>" onclick="OpenTrackback(this.href); return false">TrackBack</a>

    This still displays the old ID-based URL/popup.

    Also, when the TB URL is displayed, it still prints the ID-based TB...

    <a href="<$MTEntryTrackbackLink regex="stripFile"$>"><$MTEntryTrackbackLink regex="stripFile"$></a>

    Please let me know what I'm doing wrong.


    December 26. 2003 kl. 17:35 GMT | #

  85. timsamoff replies:

    Of course, my pasted code didn't come out in the HTML... Arg.

    I hope it did in the e-mail... Please let me know if you need it sent again.

    Thank you so much!

    December 26. 2003 kl. 17:37 GMT | #

  86. Brandon Fuller: Better Permalinks for Movable Type

    "When you install Movable Type, by default it uses the entry ID for the name of the individual archive file. I never really like this because: 1) that ID is meaningless and 2) it subject to change if you ever..." Read more

    January 3. 2004 kl. 00:25 GMT | #

  87. Haydur replies:

    Ever since I first read your entry about future-proofing a few months, I've been baffled. So far, I have read almost all major blogs that talk about future-proofing in different creative ways that Google can find for me. Your's in of course the most comprehensive and complete, when it comes to pings and comments.

    My only objection to your schema is the fact that it requires that I hack MT code, which I have never really wanted to do. I don't care much about comments, since they'll be on individual entry pages only and I won't allow direct linking to comments. But I do send out quite a few trackbacks, so in my case could you shed some more light on the consequences of leaving your tutorial at step # 2. I want to know how "naturally dirty" trackback permalinks will affect my future proofing?

    January 4. 2004 kl. 17:58 GMT | #

  88. Mr rlygsson replies:

    Haydur, if you don't follow the guidelines in step 2, then the trackback links back to your site that appear on other people's sites will contain the filename and extension - in my case "index.html", but in your case it may be index.php, or default.asp ... depending on your server-side programming environment.

    If you'd later change from - say - static .html files to .php then you'd have to make special arrangements to avoid breaking all your old incoming trackback links (map all requests ending in "index.html" to "index.php", etc.)

    If you're really against modifying the MT source code (a very valid objection) then you might want to try the method described by Mark Pilgrim ( )

    January 4. 2004 kl. 19:44 GMT | #

  89. Haydur replies:

    But didn't you say it yourself in a comment there, that his method has the trackback flaw? Or did he change his tutorial after that?

    Another question for you, which is quite baffling... why don't you use a style sheet?

    January 6. 2004 kl. 05:20 GMT | #

  90. Marie replies:

    Are you aware of any movemovement within Six Apart to implement your method of future-proofing Movable Type?

    January 6. 2004 kl. 21:05 GMT | #

  91. Mr rlygsson replies:

    Marie, I do know that Six-apart have made the TypePad permalinks more future-proof and I assume they'll implement that same URL scheme as the default in the upcoming Movable Type 3.0.

    The format they're using on the TypePad blogs is which is of course way better than the defaults in current versions of MT, but which is still vulnerable to spelling changes in the entry title, and has some pretty obvious internationalization issues (think entry titles in Chinese for example).

    January 8. 2004 kl. 01:32 GMT | #

  92. Ecthelion: From b2 to MT

    "I'm finally converting my journal from b2 to movabletype. Here's why and a list of articles/plugins/tricks I implemented in my new MT journal..." Read more

    January 10. 2004 kl. 03:47 GMT | #

  93. : :

    " , , . Movable Type archives, ".html". ..." Read more

    January 22. 2004 kl. 15:40 GMT | #

  94. cms~wire: Movable Type - Future Proofed URLs

    "Those of you familiar with the Movable Type publishing system will also know the term "permalink". A permalink is a permanent link to a content object as stored in the MT system. The gravity of this concept alone is worth..." Read more

    January 23. 2004 kl. 11:30 GMT | #

  95. ne(one)piphany: Concessions

    "By the way, does anyone still read this? Should have guessed that renewed posting would only lead to eventual blog geekery. For awhile I've been worried about what would happen if I had to move my little blog to another server or Movable Type install. ..." Read more

    January 27. 2004 kl. 12:54 GMT | #

  96. Brilliant Corners: About Bill and

    "Hi. I’m Bill Turner. I’m 32, married, and a father of two (1,2). I work for a big internet portal, and I’ve recently started going back to school to finish the bachelors degree I left hanging about 10 years ago. If you’d like to..." Read more

    January 29. 2004 kl. 00:23 GMT | #

  97. BBM Connection: Administrative.

    "Taking my cues (as usual) from yukino and after having talked with Scott, I decided to go ahead and work on future-proofing the site. Using the resources that yukino linked to, particularly the ones by Már Örlygsson and Mark Pilgrim,..." Read more

    February 2. 2004 kl. 19:11 GMT | #

  98. Nota Bene: feb 3

    "hours one-four: woke up early, feeling good. dressed. yellow shirt with blue rings, hoodie, jeans, boots. packed a suitcase to take to the new place then decided not to since i'm going to neutrino rehearsal tonight. transit, reading new pratchett..." Read more

    February 3. 2004 kl. 20:32 GMT | #

  99. maskirovka: The Future Is Now

    "One of the great things about Movable Type is the huge community built around it. What do you want to do with your Movable Type installation? Chances are, it's been done or... it's really easy to do given the vast..." Read more

    February 13. 2004 kl. 18:26 GMT | #

  100. daily babble: halfway there

    "I've revised my blog to have date-dependent (and thus futureproofed) URLs. Now I just need to fix comments and trackbacks...." Read more

    February 19. 2004 kl. 05:35 GMT | #

  101. わさび: Future-proofing ...

    "I am in the process of future-proofing this site as it looks like it will be around for a little while longer. So please bear with me since some links that link directly to a particular entry w/o use of..." Read more

    February 25. 2004 kl. 13:34 GMT | #

  102. About: Credits

    "Who and what helped me in my quest for the best look, feel and experience. (I'm talking about this site, not Viagra!)" Read more

    February 28. 2004 kl. 19:02 GMT | #

  103. Jeremy Greenwood replies:

    Great tip! Thanks!

    February 29. 2004 kl. 20:07 GMT | #

  104. erik's weblog: New Server, Second Try

    "We will try to get the new server working better this time. I've just updated MT and did the future proofing of the MT URIs again. Hopefully, this time the hardware will work for a while...." Read more

    March 1. 2004 kl. 21:10 GMT | #

  105. David Sundwall replies:

    Thank you!

    This has been great but I am having difficulty with my comments. I do not know what I did but the links show up in the individual entry archives but the link just goes to the entry itself although there is the comment timestamp in the link. In the popup of an entry's comments the comments are not there just the info of the comment's author.

    I am new with hacking the code. I will keep trying to figure out what I did but any help would be greatly appreciated.

    Many thanks.

    March 9. 2004 kl. 18:30 GMT | #

  106. Vihald sunni

    "g hef undanfari veri a breyta til hrna vefnum Helstu breytingar eru: Megrun San bar ess alltaf merki a g hannai myndirnar 17" skj sem notar 1600x1200 punkta upplausn. egar g skoai hana litlum skjm ..." Read more

    March 16. 2004 kl. 04:14 GMT | #

  107. A Soft Answer: Hacking

    "Well I was going to delete this post after I used it for a test, but Hugh pegged it with a comment. So it wouldn't be fair to delete the post but I thought I would at least post what I am trying to do behind the scenes in case anyone else with Movable ..." Read more

    March 19. 2004 kl. 16:08 GMT | #

  108. CM Harrington replies:


    Thank you so much for this tutorial. This, coupled with Mark Pilgrim's "slugs" tutorial is just what I needed. However, I do have a problem. It seems that the regex strips everything after the initial domain. [making all links point to "", rather than".

    Seeing as I blindly copied and pasted the regex from your site, without modification, do you have any insight as to why this may be?

    Thanks again, CMH

    April 1. 2004 kl. 00:55 GMT | #

  109. CM Harrington replies:

    It seems I am an idiot. I didn't check the permissions associated with the regex plug-in, and that is why it was going pear-shaped.

    Again, brilliant write-up! CMH

    April 1. 2004 kl. 01:15 GMT | #

  110. selling waves: Future-proofing selling waves

    "Yet another weblog entry on future-proofing URLs" Read more

    April 4. 2004 kl. 02:46 GMT | #

  111. randy replies:

    I am using the MTPaginate plug-in, so the URL for individual pages looks like this:

    The regex plug-in is successfully stripping the index.php off the end, but it is not taking it out here. I am using the regex command provided above:


    I do not know regex commands, but I believe the dollar sign means that it looks at the end of the word. Could anyone provide me the correct command? Thanks.

    April 9. 2004 kl. 00:24 GMT | #

  112. Mr replies:

    Randy, try this regular expression instead:


    The dollar sign means 'look at the end of the line' btw.

    April 9. 2004 kl. 00:46 GMT | #

  113. titilayo replies:

    I've come to this party a bit late, but I'm working on implementing this method, and I've got a question about it.

    I link to comments and trackbacks on an entry using syntax like:


    Obviously, this is not a link to the individual comment or ping, just to the top of the comment/ping listing. I'm uncertain whether I should be changing this bit of code to read:

    <a href="<$MTEntryLink regex=">#trackbacks">

    or if it will work fine as it is?

    Pardon me if this question has already been answered in your instructions or in the comments -- I read and re-read them, but still couldn't figure it out.

    April 13. 2004 kl. 00:33 GMT | #

  114. Sonny Parlin replies:

    This is a great technique, thank you. I have one question; have you received any questions or comments about this technique interfering with the 'remember personal info' option when leaving comments?

    May 9. 2004 kl. 16:01 GMT | #

  115. Sonny Parlin replies:

    I figured it out... just FYI to anyone that implements future proof URLs, you may have to change your cookie code in movable type to accomodate the 'remember personal info' functionality. For more details, please look here.

    May 9. 2004 kl. 17:03 GMT | #

  116. Jonathan Horak replies:

    Does Step 3 still apply to Movable Type 3.0? If not, how can I alter it to have it work?

    May 27. 2004 kl. 00:35 GMT | #

  117. anziblog v4.0: Shindig Memo, Sore Muscles, Seeding MT 3

    "Rentparty still in full effect. Redesign? None in sight yet. Peoples wuz robbed, I'll make that case. Elevating friends to a higher place." Read more

    June 15. 2004 kl. 11:44 GMT | #

  118. replies:

    Hello Mar,

    I came across a strange effect using the regex you provided:


    I'm using MT 3.0, and there is a piece of code in my Index template:

      <p><a>">Permalink</a> | Category for
      this entry: ">

    It works as expected for the 1st part, i.e. produces nice entry permalink without the index.html part... but at the same time it does nothing in the `, i.e. it produces a category link _with_ theindex.html! (Substituting single quotes for double quotes in theregex='stripFile'` changes nothing).

    This is weird. Do you have any idea why it should be so and how to make it work properly? I looked at Brad's Reges plugin page ( but there is no clue there, and no option to ask this question via comments, so I thought I might ask you.

    Oh btw. Thanks for the article! :)

    July 2. 2004 kl. 01:11 GMT | #

  119. (sic!): ЧПУ в Movable Type

    "Организация ЧПУ в Movable Type для неанглоязычных блогов и сайтов." Read more

    July 20. 2004 kl. 06:10 GMT | #

  120. sami replies:


    where to place this code ?

    August 12. 2004 kl. 14:17 GMT | #

  121. Atomkinder Broadcast: Rebuilding EmpireHax

    "You know it. I know it. Zorak know it. Moltar know it. Rebuilding the Atomkinder news system with MovableType turned into quite a mission. I used a bunch of stuff to do it, here be the record of the process..." Read more

    October 5. 2004 kl. 22:12 GMT | #

essum svarhala hefur veri loka. Krar akkir til eirra sem tku tt umrunni.


Flakk um vefsvi


Nleg svr fr lesendum

  • Rich (Req.js - javascript lazy-loading and dependency managment made easy)
  • Rich (Req.js - javascript lazy-loading and dependency managment made easy)
  • Rich (Req.js - javascript lazy-loading and dependency managment made easy)
  • Mr (Req.js - javascript lazy-loading and dependency managment made easy)
  • Rich (Req.js - javascript lazy-loading and dependency managment made easy)
  • Mr (Req.js - javascript lazy-loading and dependency managment made easy)
  • Dinesh (Req.js - javascript lazy-loading and dependency managment made easy)
  • Mr (Taubleyjur ntmanum - ltill leiarvsir handa hrddri j)
  • Ada (Taubleyjur ntmanum - ltill leiarvsir handa hrddri j)
  • notandi (Taubleyjur ntmanum - ltill leiarvsir handa hrddri j)
  • Geir (Lausnin efnahagsvandanum)
  • Jenn (Lausnin efnahagsvandanum)
  • li Jens (Lausnin efnahagsvandanum)
  • Mr (Lausnin efnahagsvandanum)
  • Kjartan S (Lausnin efnahagsvandanum)



Yfirlit yfir etta skjal

(Atriin listanum vsa kvena kafla ofar sunni.)