You need to sign in to do that
Don't have an account?
Praveen_K.ax1208
how to REWRITE the Salesforce urls to user friendly urls
Hi All,
I have a requirement to REWRITE the Salesforce urls to user friendly urls..
Can anyone post the working example on this..
This will be more helpfull for doing my task..
Thanks in Advance..
Praveen K.
Hi Praveen,
Can you please specify which Salesforce URL you are referring to?
Thanks,
Devendra
Hi Devendra,
Thanks for your immediate reply,
https://c.ap1.visual.force.com/apex/mycontact?id=00390000009IBJw
Above is the url i want to rewrite.
Mycontact is the VF page i have created
global class myURLRewriter implements Site.UrlRewriter {
//Variables to represent the friendly URLs for pages
String DIRECTORY = '/friendly/';
//Variables to represent my custom Visualforce pages that display page information
String VISUALFORCE_PAGE = '/apex/mycontact?id=';
// The first global method for mapping external URL to an internal one
global PageReference mapRequestUrl(PageReference myFriendlyUrl){
String url = myFriendlyUrl.getUrl();
System.debug('******************************'+url);
if(url.startsWith(DIRECTORY)){
String name = url.substring(DIRECTORY.length(),url.length());
//Select the ID of the page that matches the name from the URL
Contact site_page = [select id from Contact where name =:name LIMIT 1];
//Construct a new page reference in the form of my Visualforce page
return new PageReference(VISUALFORCE_PAGE + site_page.id);
}
//If the URL isn't in the form of a cmasforce page, continue with the request
return null;
}
// The second global method for mapping internal Ids to URLs
global List<PageReference> generateUrlFor(List<PageReference> mySalesforceUrls){
//A list of pages to return after all the links have been evaluated
List<PageReference> myFriendlyUrls = new
List<PageReference>();
for(PageReference mySalesforceUrl : mySalesforceUrls){
//Get the URL of the page
String url = mySalesforceUrl.getUrl();
//If this looks like a page that needs to be mapped, transform it
if(url.startsWith(VISUALFORCE_PAGE)){
//Extract the ID from the query parameter
String id= url.substring(VISUALFORCE_PAGE.length(), url.length());
//Query for the name of the cmsforce page to put in the URL
Contact site_page2 = [select name from Contact where id =:id LIMIT 1];
//Construct the new URL
myFriendlyUrls.add(new PageReference(DIRECTORY+ site_page2.name));
}
else {
//If this doesn't start like an cmsforce page, don't do any transformations
myFriendlyUrls.add(mySalesforceUrl);
}
}
//Return the full list of pages
return myFriendlyUrls;
}
}
If you have any other apex classes for rewiting urls please post those also..
Also provide how to test this...
Thanks,
Praveen K.
Hi Praveen,
This is the same you are looking for.
Hope this helps.
Thanks,
Devendra
it may work, But i want to know how to test the rewrited url..
With test class i can able to see the rewrited urls in debug logs... but i have to see the same in address bar..
Can u provide any suggestions on this ??
Thanks,
Praveen K.
No, i dont have much idea on this.:(
Thanks,
Devendra