Hello, if somebody has experience with similar situation I would appreciate any help or advice.
We run EPiServerFriendlyUrlRewriteProvider. In one particular situation I am loading page within iframe on another page. Page loaded in iframe needs info about that because it has to be displayed differently (no header, footer...). For that purpose I have added one parameter to query string, but after creating friendly url "manually" like this:
url = new UrlBuilder(UriSupport.Combine(EPiServer.Configuration.Settings.Instance.SiteUrl.ToString(), stPage.LinkURL + "&mode=iframed").ToString());
if (UrlRewriteProvider.IsFurlEnabled)
{
EPiServer.Global.UrlRewriteProvider.ConvertToExternal(url, null, System.Text.UTF8Encoding.UTF8);
}
Even though the url has value "http://intranet.svd.mogul.se/Customer/PageTypes/SectionPage.aspx?id=45&epslanguage=sv&mode=iframed" as a full url, when I take a look (view) of the page source it is "../../Chefsgrillen.aspx?mode=iframed". The master page has part of code that detects the mode query string variable and hides/shows desired controls.
The described functionality worked correctly on Episerver4 and after migration to Episerver5 I have added the UrlRewriteProvider part of code. The problem is that query string parameter some times present, some times not.
For example, I have the same page Chefsgrillen in main navigation and the link in HTML source is "../../Chefsgrillen.aspx" but it still pulls out mode=iframed from somewhere. Please note that this query param is never part of main url, only in the iframe, and isn't visible in browser address bar when Chefsgrillen is opened directly from main menu.
Then, sometimes the page in the iframe loads with no respect to the mode parameter, and it is part of url.
Is this behaviour related to some special way of working with friendly urls with added query string params? I would understand if the param was ignored, but to reemerge is a bit confusing.
Hi Milos!
Might have to do with the furl cache issue. Read my reply here to see if it's that will help you:
http://www.episerver.com/en/EPiServer_Knowledge_Center/Developer-Forum2/EPiServer-Developer-Forums-/EPiServer-CMS-version-5/15041/
url = new UrlBuilder(UriSupport.Combine(EPiServer.Configuration.Settings.Instance.SiteUrl.ToString(), stPage.LinkURL + "&mode=iframed").ToString()); if (UrlRewriteProvider.IsFurlEnabled) { EPiServer.Global.UrlRewriteProvider.ConvertToExternal(url, null, System.Text.UTF8Encoding.UTF8); }
Even though the url has value "http://intranet.svd.mogul.se/Customer/PageTypes/SectionPage.aspx?id=45&epslanguage=sv&mode=iframed" as a full url, when I take a look (view) of the page source it is "../../Chefsgrillen.aspx?mode=iframed". The master page has part of code that detects the mode query string variable and hides/shows desired controls. The described functionality worked correctly on Episerver4 and after migration to Episerver5 I have added the UrlRewriteProvider part of code. The problem is that query string parameter some times present, some times not. For example, I have the same page Chefsgrillen in main navigation and the link in HTML source is "../../Chefsgrillen.aspx" but it still pulls out mode=iframed from somewhere. Please note that this query param is never part of main url, only in the iframe, and isn't visible in browser address bar when Chefsgrillen is opened directly from main menu. Then, sometimes the page in the iframe loads with no respect to the mode parameter, and it is part of url. Is this behaviour related to some special way of working with friendly urls with added query string params? I would understand if the param was ignored, but to reemerge is a bit confusing.