HATTORI • Brawlhalla-gameplay

Vi flytter et websted fra Joomla til Mura, og nogle af siderne vil blive placeret på forskellige webadresser.

Jeg kan oprette 301 omdirigeringer i afsnittet om regler i web.config fil for at omdirigere de gamle URL'er til nye placeringer.

Min chef vil dog have, at jeg opretter en brugerdefineret 404-side, der bestemmer den anmodede url og derefter omdirigerer til den nye. Begge oplysninger ville blive gemt i en database, som den brugerdefinerede 404-side bruger til at foretage den korrekte omdirigering.

Det er et spørgsmål mellem at gøre

   

i filen web.config eller

     

I overskriften på den brugerdefinerede 404-side i Coldfusion-skabelonen. Jeg tjekkede, og Coldfusion-omdirigering returnerer en 301-statuskode.

For mig ser det ud til, at de 301 omdirigeringer i web.config-filen er den bedre vej at gå. Er der noget, jeg mangler her?

  • 1 Med "brugerdefineret 404-side" mener du en server-catch-all-handler, der reagerer med 301 og 404 statuskoder? Eller mener du en faktisk side, der serveres med en 404-overskrift?
  • @MaximillianLaumeister Ideen ville være at skrive kode i Coldfusion på serversiden, der håndterer manglende webadresser og omdirigerer brugeren på den måde

er der noget, jeg mangler her?

Jeg tror, ​​der er.

Ved at bruge den tilpassede 404-side til at kontrollere URL'en og derefter omdirigere resulterer i, at en 301-omdirigering returneres til klienten. Det samme som ved oprettelse af omdirigering direkte i serverkonfigurationen. Klienten ser ikke en 404, når en omdirigering finder sted. Først når der ikke forekommer nogen omdirigering (dvs. URL'en er ikke i din databaseopslag), kommer den tilpassede 404-side Falde tilbage for at returnere et standard 404-svar.

Dette er en god idé ... i stedet for at behandle omdirigeringslogikken tidlig, på hver anmodning - som potentielt kan påvirke udførelsen af ​​legitime sideanmodninger (hvis du har tusindvis af brugerdefinerede omdirigeringer) - behandler du i stedet omdirigeringslogikken sent i anmodningen, dvs. når du allerede har bestemt, at siden ikke findes. På denne måde har din omdirigeringslogik ingen indflydelse på normal brug af webstedet.

Hvis du kun har en håndfuld omdirigeringer, gør det ingen forskel præstationsmæssigt, hvilken måde du gør det. En 301-omdirigering forekommer stadig i begge situationer. (Selvom man administrerer omdirigeringer i en database magt være lettere at vedligeholde.) Når du først har 100-, 1000-, 10000-omdirigeringer (på grund af en migrering af et sted), er det virkelig den eneste vej at bruge en "brugerdefineret 404".

En "brugerdefineret 404" er måske en smule vildledende (selvom det kan være, hvordan den implementeres, afhængigt af din applikation / CMS) ... hvad du virkelig laver, er at køre din omdirigeringslogik først, når du har bestemt, at URL'en ikke findes på det aktuelle sted.

  • "afhængigt af din applikation / CMS" - mener du de 52% af sider, der bruger Apache? Apache tillader kode, der ændrer 404-status i det brugerdefinerede 404-dokument.
  • "Ved at bruge den brugerdefinerede 404-side til at kontrollere URL'en og derefter omdirigere resulterer i en 301-omdirigering" Dette er sandt, men kun hvis omdirigering sker på serversiden og ikke på selve 404-siden. Når man omdanner en potentiel 404 til en 301 på serversiden, er det mere nøjagtigt at kalde serversides logik en "404-handler" end en "404-side". Metoden i dit svar er solid, så jeg vil give det et punkt, men udtrykket "404 side" er vildledende, fordi du virkelig sørger for, at 404-siden faktisk ikke forekommer i første omgang.
  • @StephenOstermiller Jeg henviste ikke specifikt til Apache. Apache 404 ErrorDocument vil ikke være relevant for de fleste CMS'er - de har deres eget "brugerdefinerede 404" -dokument. f.eks. WordPress 404.php.
  • 1 @MaximillianLaumeister Ja, jeg er enig. Selvom udtrykket "side" i denne sammenhæng blot henviser til filen / dokumentet, der håndterer svaret, ikke selve svaret. Indrømmet, det er lidt vagt - men denne (afslappede) brug er med rimelighed almindelig synes jeg. WordPress-dokumenterne henviser ofte til "404.php side ", når det virkelig er en" skabelon ". Til" brugerdefineret 404 side for at bruge de oplysninger, der er gemt i databasen ", kunne du kun realistisk gøre denne server-side.
  • @MrWhite "du kunne kun realistisk gøre denne server-side." -> Alt hvad jeg vil sige er: Hvis det eneste værktøj, du kender, er JavaScript, er virkelig alt muligt, uanset hvor indviklet eller semantisk blottet.

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?