WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   LiteSpeed ger 404 för att URL visar fel (https://www.wn.se/forum/showthread.php?t=1055218)

Tro 2012-10-03 23:44

LiteSpeed ger 404 för att URL visar fel
 
Hejsan.
Förut använde jag IIS och då embeddade jag saker såhär: http://hemsida.se/hejsan.png
men nu ser min hemsida rätt konstig ut när jag bytt webbserver till litespeed
URL'en är i själva verket http://hemsida.se/Hejsan.png, men IIS var inte skriftlägeskänsligt.
Jag kan inte ändra alla länkar osv då det är över 60 000 st, så jag undrar hur man gör så man kan ladda sidan med litespeed med url http://hemsida.se/hejsan.png utan att det ger ett 404 error?

Tack på förhand

Erik Stenman 2012-10-04 00:06

kolla på " .htaccess rewrite rules "

Tro 2012-10-04 07:52

Är inte så insatt av det sedan jag anvönt iis erik, kan du ge mig ett exempel?

jayzee 2012-10-04 09:02

Vad du måste förstå är att Litespeed är ett Linux/Unix-baserad mjukvara och i Linux-världen är filsystemet skifteslägeskänsligt (dvs. Hejsan.png och hejsan.png kan finnas sida vid sida i samma mapp), därav ditt problem. Som både .NET och open-source utvecklare anser jag att hur du hanterade filnamn från första början var helt fel, oavsett platform, heter filen hejsan.png så skall länken också peka till hejsan.png och inte någon variant av namnet.

Hur som helst, ett bra inlägg finns här.

EDIT, här hittar du mer info (eller googlar på "mod_rewrite insensitive case"):
http://blog.dreamhosters.com/kbase/index.cgi?area=1153

Tro 2012-10-04 11:05

Jo jag förstår, men lämnade min sida att ägas av en annan ett tag, och han kunde inte riktigt så mycket, och eftersom det funkade sket han i det.
Ska prova det där när jag kommer hem, tack för svaret.
Förresten, kommer det exemplet du gav även funka om. Filen heter Hejsan.png men embeddas som hejsan.png?

dAEk 2012-10-04 16:27

Information som ingen bett om men som kan vara bra att känna till...
 
Det kan få oönskade effekter om man inte är konsekvent i sin namngivning.

Kör man Windows på servern och som sagt inte är konsekvent kommer Hejsan.png och hejsan.png att resultera i två cachade filer trots att det är samma fil. Webbläsarna vet inte vad man kör på servern utan sparar filerna i 2 olika poster i cachen eftersom det är olika filnamn. Gör man det här slarvfelet ofta kan det innebära att man fyller besökarnas cache i onödan och att annat som det kanske finns större behov av att cacha tas bort. På datorer är det oftast ett icke-problem men på mobila enheter ser det lite annorlunda ut.

Tro 2012-10-04 16:43

Citat:

Ursprungligen postat av dAEk (Inlägg 20452223)
Det kan få oönskade effekter om man inte är konsekvent i sin namngivning.

Kör man Windows på servern och som sagt inte är konsekvent kommer Hejsan.png och hejsan.png att resultera i två cachade filer trots att det är samma fil. Webbläsarna vet inte vad man kör på servern utan sparar filerna i 2 olika poster i cachen eftersom det är olika filnamn. Gör man det här slarvfelet ofta kan det innebära att man fyller besökarnas cache i onödan och att annat som det kanske finns större behov av att cacha tas bort. På datorer är det oftast ett icke-problem men på mobila enheter ser det lite annorlunda ut.

Om jag kunde skulle jag. Har inte portat över mitt spel från dator till någon mobil enhet så mobila enheter kan inte gå in på mitt spel/min webbsida.
Skall tänka på det nu i efterhand, men tyvärr kan jag inte ändra på det.

Jake.Nu 2012-10-05 00:02

Små "enkla" problem när dom är som roligast.. :)

På egen risk..
PHP-kod:

<?php
$wwwroot 
"/path/to/wwwroot";

$temp = array();
$list trim(shell_exec("find $wwwroot -iregex '.*\.\(jpg\|png\|gif\)'"));
if (!empty(
$list)) {
    foreach (
explode("\n"$list) as $filepath) {
        
$oldname basename($filepath);
        if (
preg_match("/[A-Z]+/"$oldname)) {
            
$newname strtolower($oldname);            
            if (
rename($filepathdirname($filepath) . "/" $newname)) {
                
$temp[$oldname] = $newname;
            }
        }
    }
    if (!empty(
$temp)) {
        
$list trim(shell_exec("find $wwwroot -iregex '.*\.\(htm\|html\|css\)'"));
        if (!empty(
$list)) {
            foreach (
explode("\n"$list) as $filepath) {
                
file_put_contents($filepathstr_ireplace(array_keys($temp), $tempfile_get_contents($filepath)));
            }
        }
    }
}
?>

Det förutsätts att det är bilderna som har en eller flera versaler medans koden kan ha vad som helst.
För att köra alla bilder kan man ta bort preg_match() {}


Alla tider är GMT +2. Klockan är nu 00:07.

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