Rewrite-modulen för Apache brukar av någon outgrundlig anledning aldrig fungera bra för mig. Nu har jag återigen spenderat någon timme med att konfa upp den för wordpress och skriver därför ner vad jag gjort för att komma ihåg det till nästa gång.

Innehållet för min site mysite pekas ut av en konfigurationsfil i /etc/apache2/sites-available (virtual host-fil). Den innehåller följande:

...
DocumentRoot /var/www/mysite
<Directory />
        Options FollowSymLinks
        AllowOverride None
</Directory>
 
<Directory /var/www/mysite>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All AuthConfig
        Order allow,deny
        Allow from all
</Directory>
...

I /var/www/mysite ligger filen .htaccess som ser ut så här:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /mysite/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /mysite/index.php [L]
</IfModule>

Det sista steget är att aktivera själva rewrite-modulen. Detta kan åstadkommas genom att skapa en symbolisk länk i /etc/apache2/mods-enabled enligt följande:

sudo ln -s /etc/apache/mods-available/rewrite.load /etc/apache/mods-enabled/rewrite.load

Tada!!