user-pic

One page, two URLs?

Vote 0 Votes

I've been thinking of implementing a "short-URL" scheme for my site, so I don't have to use TinyURL. I want to own my links and relying on TU or other services is something I don't like.

So here's what I want to do:

1) Let's say that I write an entry and it gets posted to what I'll call a "canonical" URL. This link would look something like http://www.myawesomewebsiteontheinternets.com/2009/04/04/post-title-goes-here.html. (Please note that my use of the word "canonical" should not be confused with the rel=canonical tag attribute).

2) I would also create for the above post a second "short" URL, such as http://site.com/01a4d that redirects the user automatically (TinyURL style) to http://www.myawesomewebsiteontheinternets.com/2009/04/04/post-title-goes-here.html. (Note: in this case, "site.com" would refer to a second, shorter, "parked" domain on the server that would let me create short links to content.

Does anyone have any idea how I might do this?

Reported on Movable Type 4.2

5 Replies

| Add a Reply
  • You would need a simple table with short tag (just the 01a4d for example) and the redirect url.

    You will need a cgi script that searches the table for the directory requested and the redirects to the matching redirect url.

    Use the script as your 404 handler.

  • If site.com is being used strictly as a redirect site, what advantage does a cgi script have over a redirect from a htaccess file?

  • The problem is that .htaccess is read every time a page on the site is loaded and if you get more than 10 or 20 lines in a .htaccess file, it starts affecting site performance noticeably.

    • Then you have two choices: put it in httpd.conf or write a PHP or CGI script to do the redirection. For the latter, all you need is a simple PHP script with a lookup table inside a hashtable. $_SERVER{'REQUEST_URI'}; contains the requested URI that you'd need for looking up the corresponding correct URL, and then you just do a HTTP redirect.

  • It is one additional line to .htaccess or global Apache config to add your custom 404 handler. This is similar to how most dynamic publishing systems work (including WP and MT). You request a page that does not exist, the 404 handler then generates the page you need from the database.

Add a Reply

If you need to share template code, replace all the "<" signs with "&lt;" or use this utility.

Forum Groups

1773 6162

Last Topic: Excluding categories from blog by kholechek on Feb 9, 2012

86 302

Last Topic: website entries by masoud on Oct 26, 2011

1429 5077

Last Topic: What apocalypse hit this community in the middle of 2011? by 75th on Feb 10, 2012

695 2910

Last Topic: Insert Image / File Fails by Russ Miller on Feb 10, 2012

84 291

Last Topic: How to have some other characters in entry basename automatically written by Afshin Haghighatnia on Dec 22, 2011

173 737

Last Topic: About the MT version stated in HTML source by Alex E. Schneider on Feb 7, 2012

190 567

Last Topic: Analytics Reporting by michael webster on Feb 5, 2012

48 210

Last Topic: An idea and also a request by Afshin Haghighatnia on Jun 29, 2011

64 246

Last Topic: jQuery in MT 5.1 still at 1.4 - why? by perlmonkey on May 25, 2011

code.sixapart.com

137 478

Last Topic: Getting a thumbnail with xpath by Peter on Mar 13, 2011

222 720

Last Topic: Custom Field for Asset Not Appearing by android on Feb 9, 2012