.htaccess-trubbel

.htaccess-filerna är ett ständigt gissel när det kommer till CakePHP och kommersiella webbhotell. Har man en egen webbserver att snickra med hemma och möjlighet att få den att fungera ut mot Internet har man till 95% sällan problem. Har man inte den möjligheten och tvingas köra mot ett webbhotell man inte har någon direkt kontroll över har man istället definitivt 95% problem.
Jag var tvungen att byta från Crystone till Loopia för att ens få tillgång till mod_rewrite, modulen som CakePHP använder sig av för att göra snygga URL:er. Därefter var det rätt svettigt att få ett meddelande som säger:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Detta inträffar på Loopia:s webbhotell när man försöker installera CakePHP out-of-the-box. Det finns tonvis med förslag på Internet om hur man löser sånt här, men det enda som fungerar för mig är följande

Förkrav

  • Loopia som webbhotell
  • CakePHP 1.2.x (kan även gälla för framtida versioner, men jag tar inte gift på det)
  • CakePHP ligger i rooten på sajten
  • mod_rewrite är aktiverat

Utförande

  • Leta upp filen .htaccess som ligger i CakePHP:s root-mapp
  • Öppna den och leta upp raderna
    • RewriteRule    ^$ app/webroot/    [L]
    • RewriteRule    (.*) app/webroot/$1 [L]
  • Ändra dessa rader genom att lägga in ett slash-tecken (“/”) framför “/app/webroot” i båda raderna
  • Resultatet
    • RewriteRule    ^$ /app/webroot/    [L]
    • RewriteRule    (.*) /app/webroot/$1 [L]

För att undersidor ska fungera som de ska (tex http://mindomän.se/undersida) måste man göra en sak till. Detta tips kan ni hitta på CakePHP:s hemsida.

  • Leta upp filen .htaccess som ligger i CakePHP:s webroot-mapp
  • Öppna den och leta upp raderna
    • RewriteEngine On
    • RewriteCond %{REQUEST_FILENAME} !-d
  • Ändra dessa rader genom att lägga till en RewriteBase
  • Resultatet
    • RewriteEngine On
    • RewriteBase /[eventuell]/[underkatalog]/
    • RewriteCond %{REQUEST_FILENAME} !-d

Ett annat förslag kan vara att ta kontakt med Elit.net som är ett webbhostingföretag i Helsingborg. De är inte billigast men är villiga att hjälpa till och inte minst lära sig om det är något system de inte känner till sedan innan.

2 comments

  1. Kallio says:

    Tacktacktack, en perfekt julklapp, precis vad jag behövde och kort, lätt och bra förklarat.

    1. DrLaban says:

      Kul att du hade användning för den! Och god jul!

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.