Permalinks en Ubuntu server i Apache 2
Aquesta és una incidència que em trobo cada vegada que preparo un servidor web amb Ubuntu i migro un WordPress, els permalinks o enllaços permanents acostumen a no funcionar.
. Què és un enllaç permanent? – Wikipedia
Enllaç permanent
Un enllaç permanent (anglès permalink) és un enllaç que s’usa en els blocs per a assignar un URL permanent a cada entrada del bloc, per a després poder referenciar-la. D’aquesta forma s’identifica de manera univoca un contingut (article, discussió, anàlisi…) sobre un tema o qüestió en el bloc de destinació. És a dir, es facilita l’accés (i una referència) directa a tots aquells que puguin estar interessats en el contingut referenciat. Per a usar-lo, es copia l’enllaç i s’enganxa a un altre lloc per tal de poder-hi fer clic i anar directament a l’original referenciat.
També són usats en multitud de pàgines web (les anomenades estàtiques) per a millorar el posicionament web en cercadors, i són molt usuals en els fòrums per tal que l’URL sigui el títol del post o fòrum separat per guions, per exemple “això-és-un-exemple-d’enllaç-permanent.html”. Això fa que la seva visibilitat sigui molt millor.
. Error amb el que ens trobem
Si activem el permalink en el wordpress i anem a provar alguna de les nostres entrades ens trobem amb el següent error:
Error 404
The post or page you requested can not be found on this site.
Visit the Home Page or browse through the Archives.o
The Requested URL was not found on this server
. Com ho resolem
Anem via consola al nostre servidor i fem el seguent
1.- Crear manualment un fitxer “.htaccess” en l’arrel del nostre wordpress. (Aquesta és la carpeta que conté el wp-contetn, wp-admin, wp-includes). Aixó ho farem amb un:
sudo vi .htaccess
2.- Canviarem el propietari del fitxer que acabem de crear i li donarem al grup www-data
sudo chown -v :www-data "/path on es troba el fitxer/.htaccess"
3.- Donarem permís d’escriptua al apache2 sobre aquest fitxer
sudo chmod -v 664 "/path on es troba el fitxer/.htaccess"
4.- Activarem el mòdul mod_write en el apache2
sudo a2enmod rewrite
5.- Editem el fitxer /etc/apache2/apache2.conf
sudo vi /etc/apache2/apache2.conf
Modificarem “AllowOverride None” i el deixarem amb “AllowOverride All” tal i com es mostra a continuació
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
També afegirem aquesta línia en el mateix fitxer de configuració, ho podem fer al final de tot.
ServerName localhost
6.- Reiniciem l’Apache2
sudo /etc/init.d/apache2 restart
I així és com en s hauria de funcionar