Izsak's Website Suite prechádaza na LucidCMS systém a prechod si vyžiadal ďalšie komplikácie. Ako som písal, nastal veľký, krátky výpadok www.izsak.net. Teraz som objavil chybu, ktorá spôsobovala, že Apache poslal pre MSIE zdrojový kód PHP súboru!
Ako hlavný indexový súbor som mal nastavený index.xht
s MIME typom application/xhtml+xml
. Pre prehliadače
nepodporujúce tento MIME typ bola hlavička upravená na
text/html
.
DirectoryIndex index.xht index.php index.htm
AddType 'application/xhtml+xml; charset=utf-8' .xht
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} !application/xhtml\+xml
RewriteRule \.xht$ - [T=text/html;charset=utf-8]
Všetko fungovalo správne. Pokým som nenasadil LucidCMD systém a nechcel
som prepisovať URL na adresu index.php?url=cesta&r=1
. V tom
čase nastal prvý výpadok, pretože som si nechal nastaviť zlé
RewriteRules.
Technická podpora
Českého Hotingu mi ochotne nastavila pravidlá tak, aby sa nebilo
prepisovanie URL pre www.izsak.net
a pre
www.izsak.net/weblog
.
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d
RewriteRule ^/([^/]*)$ - [L,S=1]
RewriteRule ^/([^/]*)$ /index.php?url=$1&r=1 [L]
Pri zadaní adresy www.izsak.net však
Apache presmeroval interne URl na
www.izsak.net/index.php?url=index.xht&r=1
. Toto chovanie sa mi
zdá dosť podivné, počítal som s tým, že parameter url=
bude
prázdy a nie index.xht
.
Objevil som však záhadnú chybu v MSIE: Apache posielal zdrojový kód
index.php súboru. Iba tohoto, žiadnych iných našťastie. Po zadaní priamej
adresy www.izsak.net/index.php
sa však zobrazila správna
stránka.
Skúsil som teda použiť nástroj Fiddler Tool na prezretie hlavičiek, ktoré posiela MSIE na server a ich prípadné upravenie. Potom, čo som pridal do hlavičiek
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5`
(cez Request Builder), server vrátil stránku a nie zdrojový kód. Objavil som teda chybu – prepisanie MIME typu pre .xht súbory.
Rýchlym riešením je odstránenie všetkých pravidiel pre
.xht
súbory (hlavne RewriteRule). Na iné riešenie som teraz
neprišiel (a asi ani neprídem, pretože do rewrite pravidiel sa príliš
nevyznám).
Ešte raz samusím poďakovať technickej podpore Českého hostingu za promptné a ochotné riešenie problému.