Introduction
Have you ever wondered that having to remember and type the URL of your webpage over and again might be frustrating for some users of your website? That was why the internet shortcut was created to help out.
The Internet Shortcut / URL file (*.URL) is a Windows file which can however be used on other OS or better stated by browsers on other OS other than Windows. This is used extensively in IE to store bookmarks and favorites but can also be used to create a double clickable file (shortcut) similar to a file shortcut rather pointing to an internet resource and recognized by all major browser.
The file format
The file format is similar to an INI file and has the .URL extension (note .url doesn’t seem to work for some people but .URL works in all cases)
[InternetShortcut]
URL=http://www.example.com/index.php
Workingdirctory=c:\Windows\
ShowCommand=7
IconIndex=1
IconFile=c:\Windows\system\url.dll
.
.
.
There are still some other field but the most important are the URL
and ShowCommand
fields:
- URL: This is self-explanatory. It is the url of the internet resource. Note this is not limited to the http protocol, it can be http, https, ftp or some other supported protocols
- ShowCommand: This the state the browser should be when the URL is opened. 0 or not setting this means normal, 3 means maximized, while 7 means minimized.
- IconFile: This is the location of the file containing the icon that should be displayed for this file. This can be a .ico, .dll, .exe, or any file which can contain an icon file. Note that this is not limited to files on the local machine of the user, it can be on your webserver e.g. IconFile=http://www.example.com/myicon.ico
- IconIndex: the index of the icon to use in the file specified in IconFile.
Benefits for generating this on the server side
Being able to generate this on the fly on the server side and letting the user download it their computer will be of great benefit in that
- The user can save the file on their desktop like a file shortcut but pointing to your website.
- Your website is one click away from the user.
- The user don’t have to remember your URL to visit your site.
- The file can be shared with friends and is OS independent compared to the Mac OS / Safari .webloc counterpart.
Generating on file from the server
The code below shows our to set the URL field (which is the only necessary and most important field to set) from the server side, preparing the file and shipping it to the user for download.
<?php
$protocol = "http://";
if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443)
{
$protocol = "https://";
}
$shortText = "[InternetShortcut]\nURL={$protocol}" . $_SERVER['SERVER_NAME'];
header('Content-type: application/internet-shortcut');
header('Content-Disposition: attachment; filename="myShortCut.URL"');
echo $shortText;
?>
The MIME (content-type) could be any of wwwserver/redirection, application/internet-shortcut, application/x-url, message/external-body, text/url, text/x-url but application/internet-shortcut works fine.