Avatar billede jimmydk Nybegynder
03. april 2011 - 13:20 Der er 8 kommentarer

Ændre %3F til ? inden fejl

Jeg er løbet ind i et lille problem men min side.
Jeg bruger querystring url´s, som har fungeret fint med ?id=sidensnavn.
Men der er begyndt at komme backlinks med %3Fsid%3Dsidensnavn, hvilket giver en fejl 404.

Hvordan løser jeg det problem, for den fejler inden inden jeg kan fange den..!
Avatar billede Syska Mester
04. april 2011 - 21:01 #1
Et HttpModule burde kunne fange dem inden.

Men er det ikke nemmere at løse den første bug?

Hvis sider der linker til dig, laver:
"links.aspx?id=10" om ... så er det noget direkte røv ... for det brude de ik', men kun efter "?" ...

Lyder meget sært ... men håber du får løst det på en god måde.
Avatar billede jimmydk Nybegynder
04. april 2011 - 21:50 #2
Jeps det er noget direkte røv for siden giver 7 backlinks til siden inkl. undersider...

Men det er http://www.woorank.com som laver det nummer.
Kan altid sende dem til default, men ville nu hellere have juicen ud af dem. ;o)
Avatar billede Syska Mester
04. april 2011 - 23:15 #3
Men kan du ikke løse det med et HTTP module of kigge på URL og se om du vil lave en URL decode? Og så måske lave en 301 redirect?
Avatar billede jimmydk Nybegynder
05. april 2011 - 12:22 #4
Jeg er ikke sikker på hvordan jeg skal gøre det..

Jeg har prøvet med denne string encoded = System.Web.HttpUtility.UrlEncode(Request.RawUrl);

Men når urlen indeholder problem teksten, når jeg ikke en gang dertil.

Lokalt får jeg en fejl 400 og online en 404, så lige pt. sendes default.

Så hvis du har et eksempel der virker, vil  jeg meget gerne se det. ;o)
Avatar billede Syska Mester
05. april 2011 - 17:28 #5
Du skal ikke Encode ... så laver du jo netop ? om ...

Når du modtager et kald, så må du jo vide hvad URL de rammer. Der kan du så sætte et HttpModule ind ...

Hvad har du prøvet indtil videre ? Eneste jeg kan se er din UrlEncode.

mvh
Avatar billede jimmydk Nybegynder
05. april 2011 - 18:16 #6
Jeg har prøvet en normal request.qu....
og
HttpContext.Current.Request.Url.ToString()
string decoded = System.Web.HttpUtility.UrlDecode(Request.RawUrl);

De rammer http://www.thecurrencyrates.eu/Default.aspx%3Fsid%3DILS men inden den når til page_load er siden fejlet og brugeren får en 404.
Avatar billede Syska Mester
05. april 2011 - 18:50 #7
Lyder ikke til at du har kigget på HttpModule ...

http://msdn.microsoft.com/en-us/library/ms227673.aspx

mvh
Avatar billede spaceus Nybegynder
11. april 2011 - 22:13 #8
Kan du ikke komme med en bedre beskrivelse af fejlen, jeg tvivler stærkt på at et httpmodule er løsningen her...

Hvornår får du fejlen hvem linker hvad jeg synes det mig noget uklart.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester