November Happy Hour will be moved to Thursday December 5th.

Opera not showing friendly URLs

Vote:
 

I have a problem with Opera and friendly URLs


A link may look like this in all other browsers: http://test.no/no/Nyheter/

and Opera shows this: http://test.no/Templates/Test/SearchAndFilter.aspx?id=396&epslanguage=no

 

Has anybody else had this problem? I dont have this error on other CMS6 projects, and can`t really find any solutions.

#70994
May 07, 2013 8:26
Vote:
 

There's a URL rewriter module that rewrites the modules before delivering the document to the HTML browser. It should not matter what browser you use, the FURL rewriting should either be on or off for all browsers. If it's not a caching issue.

#70995
May 07, 2013 9:01
Vote:
 

Yes, as I said to the customer. They used MakingWaves URLRewritter before with  the same problem, but is now on the good old EPiServerFriendlyUrlRewriteProvider.


I can open friendlyURL with Opera, but all links from that page points to a unfriendly URL. For me this makes no sense, how can this be problem with the cache if it is a problem on both production and test?

#70996
May 07, 2013 9:09
Vote:
 

I agree with Toni. Since rewriting urls is done on server side it should not matter which browser you use for FriendlyUrl. Test again and make sure the browser cache is empty so that your Opera browser hasn't cached an old page when you had it turned off.

#70999
Edited, May 07, 2013 9:47
Vote:
 

This is not likely the case, but anyway.....

The URL filter is only attached to the request if the Response.ContentType is text/html. Could you verify by e.g. fiddler or a browser addon tool that the ContentType is text/html.

#71010
May 07, 2013 11:15
Vote:
 

Yeah, it is RESPONSE BYTES (by Content-Type)
--------------
application/xhtml+xml


not text/html, and cache-cleared did not help.

#71013
May 07, 2013 11:40
Vote:
 

Hmm, according to this http://my.opera.com/karlcow/blog/2011/03/03/wrong-to-be-right-with-xhtml it seems IIS sends different ContentType to Opera.

A workaround for you could perhaps be to write an initialization module that hooks up to an event raised before the url rewrite filter is attached and in there ensures ContentType is text/html if the handler is System.Web.UI.Page. Something like:

[InitializableModule]
public class ContentTypeModule : IInitializableModule
{
public void Initialize(Framework.Initialization.InitializationEngine context)
{
   UrlRewriteModuleBase.HttpRewriteInit += delegate(object sender, UrlRewriteEventArgs args)
  {
         (sender as UrlRewriteModuleBase).HtmlAddingRewriteToExternalFilter += delegate(object s, UrlRewriteEventArgs e)
         {
             if (HttpContext.Current.Handler is System.Web.UI.Page)
            {
                 HttpContext.Current.Response.ContentType = "text/html";
            }
         };
      };
}


public void Preload(string[] parameters)
{
}

public void Uninitialize(Framework.Initialization.InitializationEngine context)
{
}
}

#71029
May 07, 2013 13:53
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.