WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   mod_rewrite, 404 not found (https://www.wn.se/forum/showthread.php?t=1270)

zmodem 2004-01-20 12:17

Sitter just nu och funderar lite på hur jag ska bygga upp plattformen för den nya versionen av min hemsida som alltid finns någonstans i bakhuvudet (men brukar dröja innan den visar sig på nätet).

Jag hade tänkt lägga allt innehåll på sidorna i en databas, och för att se sidorna skulle användarna få anropa scriptet t.ex. såhär: /cgi-bin/script.cgi?sida=sidans_namn

Detta tänkte jag fixa med mod_rewrite, så att när de begär http://www.server.se/sidans_namn så översätter mod_rewrite det till http://www.server.se/cgi-bin/script.cgi?si...ida=sidans_namn

Men saken är den, att om det inte finns någon sida i databasen som heter sidans_namn, så vill jag ju att besökaren ska få ett riktigt 404-error, och inte mötas att mitt fåniga script.

Jag kan tänka mig två lösningar på detta... en snygg och en ful :)
Den fula är att jag med cron kör ett script som lite då och då går igenom databsen och kollar vilka sidnamn som är godkända, och sedan skapar min .htaccess-fil efter det. Detta är ju inte speciellt snyggt, eftersom jag kommer ha en rad i .htaccess för varje sida.

Den andra varianten är att Perl-scriptet känner av att sidan som begärts inte finns, och sedan avger ett 404-fel. Frågan är då hur man gör detta? Det skall alltså inte bara stå "sidan finns inte", utan det ska vara ett _riktigt_ 404-meddelande. Dessutom skulle det vara extra bonus-bra om felet registreras som ett fel i server-loggen.

Nån som har några spontana kommentarer till min undringar?

Degen 2004-01-20 12:33

Ja, jag fattar inte :-)
Nej, skämt åsido, det är en klok funderare du gör, ska ta tag i att lösa problemet...

zmodem 2004-01-20 13:05

Det jag alltså vill göra är att skicka en HTTP-header där det står typ HTTP/1.1 404 File not found eller nåt i den stilen

Frågan är hur jag gör det i Perl? I PHP använder man header() för att skicka och även ersätta redan utskrivna headers, hur gör jag i Perl?

Edit: found it! http://www.hk8.org/old_web/linux/cgi/ch03_...m#ch03-9-fm2xml

gabriel 2004-01-20 13:07

kan inte perl men några problem är det ju inte är ju bara att skicka en 404 som man gör i php genom att använda header()

Edit. då hann zmodem före trots att jag har bredband o allt ;) så jag borde faktiskt vara snabbare än han ;) hehe


Alla tider är GMT +2. Klockan är nu 15:26.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson