Long URL’s in SharePoint 2010

I had a co-worker recently ask me about some of the incredibly long URL’s now used in SharePoint 2010.  In SharePoint 2007, the URL to a document hosted in a document library looked something like https://sharepoint/sites/teamsite/project%20documents/mydoc.xls. Great for cutting and pasting into an e-mail.  After upgrading the SharePoint 2007 farm to SharePoint 2010, right-clicking on that same document and copying the URL would result in something that looked like

https://sharepoint/sites/teamsite/_layouts/xlviewer.aspx?id=/sites/teamsite/project%20documents/mydoc.xls&Source=http%3A%2F%2Fsharepoint%2Fsites%2Fteamsite%2Fproject%20documents%2FForms%2FAllItems%2Easpx%3FRootFolder%3D%252Fsharepoint%252Fsites%252Fteamsite%252Fproject%documents%26View%3D%7B391E5EDC%2DAA9C%2D4F64%2D9E8D%2D401965CFC83A%7D&DefaultItemOpen=1

Not so good for cutting and pasting into an e-mail, right?  Why did the URL length grow so long when referring to the same document for which SharePoint 2007 had such a nice short URL?

Lake Chargoggagoggmanchauggagoggchaubunagungamaugg by Bree Bailey.
SharePoint 2010 is not the only place with long names. Picture by Bree Bailey

First… the why.  You will see this behavior if you are using Office Web Apps with SharePoint 2010.  That long URL tells SharePoint to open the document in Office Web App, allowing you to read the spreadsheet or word document without downloading it locally and opening it in your local installation of Office.  That’s why the first part of the URL references /_layouts/xlviewer.aspx or /_layouts/PowerPoint.aspx or /_layouts/WordViewer.aspx

image
PowerPoint in the browser, courtesy of Office Web Apps

What if you just want to link directly to the document itself?  Some e-mail programs limit the length of URLs, as do places within SharePoint itself (Document Link content types can only be 260 characters, and links within “Current Navigation” are also limited).  The link to the open-in-web-apps-view is usually too long. 

Let’s deconstruct the long url:

https://sharepoint/sites/teamsite/_layouts/xlviewer.aspx?id=/sites/teamsite/project%20documents/mydoc.xls&Source=http%3A%2F%2Fsharepoint%2Fsites%2Fteamsite%2Fproject%20documents%2FForms%2FAllItems%2Easpx%3FRootFolder%3D%252Fsharepoint%252Fsites%252Fteamsite%252Fproject%documents%26View%3D%7B391E5EDC%2DAA9C%2D4F64%2D9E8D%2D401965CFC83A%7D&DefaultItemOpen=1

  • The protocol = https://
  • Server Name: sharepoint
  • The URL to Office Web Apps: /sites/teamsite/layouts/xlviewer.aspx
  • Parameter saying what document to open: ?id=/sites/teamsite/project%documents/mydoc.xls
  • Parameter explaining where SharePoint should go if you close the Web App view (the URL is URL encoded and includes the path and view for the folder storing the document): &Source=http%3A%2F%2Fsharepoint%2Fsites%2Fteamsite%2Fproject%20documents%2FForms%2FAllItems%2Easpx%3FRootFolder%3D%252Fsharepoint%252Fsites%252Fteamsite%252Fproject%documents%26View%3D%7B391E5EDC%2DAA9C%2D4F64%2D9E8D%2D401965CFC83A%7D
  • Parameter specifying to open the item in Web App view (I am guessing on this one… changing =1 to =0 doesn’t seem to do anything): &DefaultItemOpen=1

Pretty sure your eyes are crossed at this point… this is way more than you wanted to know.  Anyhoo… the point I was trying to make is… out of that ginormous URL, it is relatively easy to extract the path to the document itself.  That source parameter is only necessary for Web Apps, and it takes up a lot of spac.  Just combine the protocol with the server name with the parameter saying where the document is (in our example above, https://sharepoint/sites/teamsite/project%documents/mydoc.xls.   It’s easier done than said Smile

The other way to change the behavior away from long URLs (and back to the way SharePoint 2007 worked) is to change the default document opening behavior.  You must be a Site Collection Administrator to do so, and simply go to:

  1. Site Settings
  2. Under Site Administration --> Site Library and Lists
  3. Select the list of interest
  4. Under General Settings --> Advanced Settings
  5. Under Opening Documents in the Browser --> chose radio button to Open in the Client Application
  6. OK

image

Now you will notice that right-clicking on a document and selecting the URL will leave you with a nice short URL.  Hope this helps someone!