26. november 2010 - 16:59Der er
13 kommentarer og 1 løsning
Hjælp til mod_rewrite
Hej,
Jeg er endnu aldrig blevet særlig skrap til mod_rewrite. De simpleste ting er altid noget jeg kan bokse med 4-5 timer, før skidtet virker.
Jeg har et script "gen.php" som genererer png-billeder, udfra parametre som højde, bredde, og farver.
Indtil videre er der linket til scriptet med URL'er som "gen.php?h=100&w=200&c1=FFFFAF&c2=0000A0&v=0". Så tjekker scriptet om der allerede eksisterer en fil med de "egenskaber", hvorefter billedet bliver genereret eller læst, og sendt med en image-header.
Betyder det ikke at nogen browsere ikke vil cache billedet lokalt?
Tænker at det måske er smartere at lave så apachen tjekker om for eks. "g_100x200_FFFFAF_0000A0_0.png" eksisterer, når billedet bliver forsøgt hentet fra mappen, og hvis ikke, at URL'en så bliver rewritet i dette tilfælde til: "gen.php?h=100&w=200&c1=FFFFAF&c2=0000A0"
Er det en helt tåbelig måde at gøre det på? Andre forslag/idéer modtages gerne.
Evt. nogen som kan bikse sådan en rewrite-regel sammen?
Du må lige lege med den her - den er omskrevet fra: <FilesMatch "\.(html|htm|php|css)$"> Header set Cache-Control "max-age=600, private, proxy-revalidate" ExpiresDefault "access plus 5 minutes" </FilesMatch>
til din <FilesMatch "gen.php"> Header set Cache-Control "max-age=600, private, proxy-revalidate" ExpiresDefault "access plus 5 minutes" </FilesMatch>
Den expirer efter 5 min som angivet.
Mth. check om der eksisterer en fil navngivet den du har der... Aner ikke om Apache har en file exists funktion, det tror jeg ikke.
Hvilken image type sendes den som? PNG? Hvis du kan lægge det php script i en mappe for sig selv, sammen med en .htaccess - med denne: <FilesMatch "\.(png)$"> Header set Cache-Control "no-cache, must-revalidate" ExpiresDefault "no cache" </FilesMatch>
Well, det med expire efter 5 min er der ikke nogen grund til, hvis den kaldte URL til scriptet er 100% den samme som for 20 min siden.
Billederne er PNG, ja. :)
Mht. den sidste du nævnte. Den skal helt sikkert være der, men den kan jeg jo så ikke bruge til noget, før jeg får apachen til at tjekke om billedet allerede er genereret.
Jeg er ret sikker på at det kan gøres med Mod_rewrite
Synes godt om
Slettet bruger
26. november 2010 - 17:36#3
Der er ikke nogen grund til at rewrite i første omgang. Alle moderne browsere cacher også sider/billeder, selvom der er en query-streng bagpå, hvis bare strengen er den samme fra gang til gang. Der er ikke nogle der skal læse adresserne, og det gør alligevel ikke det store sikkerhedsmæssigt. Har du lavet en fejl i scriptet som kan udnyttes (og som nogen gider bruge tid på at udnytte), så er de skam ligeglade med filendelsen.
Fik det til at virke nu. Ved ikke lige hvorfor den drillede før, og ikke nu.
Tak for hjælpen :)
Synes godt om
Ny brugerNybegynder
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.