Sometimes you might need to get the relative path of a Sitecore item, say there is an item 'Sitecore/Content/Home/Categories/Products/MyProduct' which represents a page in your website with URL 'http://yoursitename/Categories/Products/MyProduct', now if you want to get the relative path i.e., '/Categories/Products/MyProduct', then this post might be for you..
Code to get item relative path/URL
Below is the simple I have used to do the same. First get the Sitecore item path and then remove the root path and start item name from that path to get the relative path.
public static string GetItemRelativeURL(Item item)
string itemPath = item.Paths.Path.ToString().ToLower();
itemPath = itemPath.Replace(Sitecore.Context.Data.Site.RootPath.ToLower(), "");
itemPath = itemPath.Replace(Sitecore.Context.Data.Site.StartItem.ToLower(), "");
Hope it helps you. Please comment if you have any suggestions.