Avatar billede thomaskramer Juniormester
19. september 2011 - 09:18 Der er 16 kommentarer og
2 løsninger

Redirect gamle php sider til asp-site forside

Hej

Jeg har tidligere haft en hjemmeside lavet i php.

Den er nu udskiftet med en side udviklet af asp.net.

Google har en del links til den gamle side - som nu bare giver en træls "404 - ikke fundet" side.

Kan jeg redirecte alle de gamle php-links til forsiden på det nye site?

Jeg har ikke mulighed for at liste alle de gamle url's - det skal være et script der henviser alle tidligere php urls (hedder noget med "index.php?" alle sammen) til www.minnyeaspside.dk

Nogen der kan hjælpe ?
Avatar billede keysersoze Guru
19. september 2011 - 09:26 #1
Du kan let sætte det op i din web.config; http://geekswithblogs.net/shahed/archive/2007/10/23/116278.aspx

Du bør dog efter min mening enten lave 301 redirects til individuelle sider da du på den måde sparer tid på at få omindekseret eller reelt præsentere en 404-fejl til søgemaskinerne så du får fortalt at de ikke eksisterer mere.
Avatar billede thomaskramer Juniormester
19. september 2011 - 09:35 #2
når jeg indsætte denne:

<customErrors mode="On">
      <error statusCode="404" redirect="~/Default.aspx?kat=100" />
    </customErrors>

får jeg:

500 internal server error
Avatar billede keysersoze Guru
19. september 2011 - 10:18 #3
En fejl 500 er en kodefejl - det kan være både i web.config og din aspx. Du bliver nødt til enten at få udskrevet fejlen eller kigge i din log for at se fejldetaljer.
Avatar billede thomaskramer Juniormester
19. september 2011 - 10:21 #4
Skal den placeres et bestemt sted i web.config?
Avatar billede keysersoze Guru
19. september 2011 - 10:29 #5
Alt i web.config tilhører bestemte områder - customErrors skal ligge under system.web
Avatar billede thomaskramer Juniormester
19. september 2011 - 10:42 #6
ok ja - der har jeg så lagt den nu :-)

Inden internal error 500 mere

Men stadig en 404 fejl.

Har du flere ideer? :-)
Avatar billede fennec Nybegynder
19. september 2011 - 11:07 #7
Bare lige for at høre. Er det så et helt nyt domæne?

Altså hedde dit gamle www.mitSite.dk (php) og det nye hedder www.mitNyeSite.dk (asp.net).

For så skal du ikke rette noget i asp.net (altså web.config). Så skal du rette i php koden på dit originale site. Men det lyder som om det slet ikke eksistere længere, for ellers ville den jo ikke give en 404 fejl.

På mig lyder det lidt som om dit gamle site er nedlagt, også kan du intet gøre...
Avatar billede thomaskramer Juniormester
19. september 2011 - 11:15 #8
Det er samme domæne :-(

Er der så intet at gøre?

Det er jo lidt træls med døde links på google.
Avatar billede fennec Nybegynder
19. september 2011 - 11:22 #9
Hvis det er samme domæne så er løsningen web.config som keysersoze har beskrevet.

Hvorfor det ikke virker er mig så en gåde. Men det vil jeg lade ham om, da jeg ikke er så meget inde i .Net
Avatar billede jokkejensen Novice
19. september 2011 - 12:35 #10
Du skal først og fremmest have .php extension i IIS til at ramme isapi .net, ellers behandler den ikke php filerne gennem .net motoren.

Har du problemer med web.config, så hent V.S express, eller modificer den igennem IIS.

/J
Avatar billede thomaskramer Juniormester
19. september 2011 - 15:54 #11
Den sidste der var nok lige sort nok, for en novice som mig.

Sitet ligger på en server hos en udbyder - så jeg kan ikke installere alskens software?

Bliver jeg så nødt til at droppe det hele og leve med døde links?
Avatar billede keysersoze Guru
19. september 2011 - 18:24 #12
Hvis ikke PHP-endelsen forståes af serveren har du i hvert fald lidt udfordringer - så vil jeg umiddelbart mene at du kan forsøge dig med to ting; a) se om du kan køre PHP-filer på samme server eller b) se om du kan, eller kan få lov til, at opsætte en custom 404 side hos webhotellet, evt gennem et kontrolpanel hvis de tilbyder det.
Avatar billede jokkejensen Novice
20. september 2011 - 13:40 #13
<add path=".php" verb="GET,HEAD,POST" type="System.Web.DefaultHttpHandler" validate="False" />

Kast den i web.config, så bliver dine php sider fanget af .net motoren, brug så ex www.urlrewriting.net til at udtrykke dig med regex:


<add name="php404"
virtualUrl="^~/(.*).php"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/404.aspx?Request=$1.php"
ignoreCase="true" />
Avatar billede thomaskramer Juniormester
22. september 2011 - 07:26 #14
Hej Jokke

Tak for svaret - det ser spændende ud.

Men kan du forklare det lidt mere detaljeret - jeg er novice, og indrømmer ærligt, at jeg ikke forstå så forfærdeligt meget af det.

På forhånd tak :-)
Avatar billede thomaskramer Juniormester
22. september 2011 - 08:13 #15
Jeg tror jeg har fundet en meget simpel løsning.

Jokke smid et svar, så skal du få halvdelen af pointene
Avatar billede jokkejensen Novice
22. september 2011 - 09:12 #16
forklar kort hvad du gjorte i et svar, og accepter det selv, det har andre meget mere gavn af.

vh
/J
Avatar billede thomaskramer Juniormester
22. september 2011 - 13:07 #17
Udbyderen kunne tilbyde at man fik en custom-404 side.

Den linker så til hovedsiden :-)

Tak for hjælpen
Avatar billede keysersoze Guru
23. september 2011 - 18:38 #18
... altså helt som forklaret i #12
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
Kategori
Kurser inden for grundlæggende programmering

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