set
12

Apache, wordpress ed errore 404 coi permalink

 

Tutti conosciamo wordpress, forse la più famosa piattaforma CMS per il blogging.

Anche io lo uso per questo e per il mio nuovo blog personale, ed è proprio installando questo nuovo blog che ho riscontrato un annoso problema.

WordPress è strutturato molto bene per la SEO, una feature built-in è ad esempio l’uso dei permalink, vale a dire la riscrittura degli url degli articoli con una sintassi molto più SEO-friendly.

Le impostazioni di default infatti registrano gli url dei vari articoli con l’id dello stesso, /?p=N, ad esempio dove N è l’id del post; noi possiamo cambiare queste impostazioni per far si che al posto di questa sintassi gli url siano richiamabili tramite un url che viene registrato in base al titolo dell’articolo. Maggiori informazioni si trovano nel codex di wordpress.

Questa funzione fa uso delle cosiddette Rewrite Rules, questo significa che il server che ospita il blog deve soddisfare dei requisiti minimi per far funzionare i permalinks, questi requisiti sono:

  1. Il modulo mod_rewrite installato e caricato in apache
  2. Opzione Followsymlinks dentro il file del virtualhost
  3. Opzione Allowoverride settata a FileInfo nel file del virtualhost

Oltre al modulo mod_rewrite la regola più importante è la terza, con la direttiva di apache AllowOverride infatti diciamo ad apache se escludere od inlcudere i file nascosti nella doc root del sito, questi files sono ad esempio .htaccess, .etc, ecc…

É importante perchè wordpress installa le regole di rewrite proprio nel file .htaccess dentro la root directory del nostro sito e se apache le esclude quando cliccheremo sugli articoli otterremo un bell’errore 404.

Nel mio caso però nonostante il virtualhost fosse a posto con tutte le regole, il modulo caricato ed il sito correttamente visibile, i permalinks non ne volevano sapere di funzionare.

Mi sono reso conto che il problema era nella configurazione del demone di apache perchè non appena oscuravo il nuovo blog mi partiva l’allarme di nagios che mi controlla sostanzialmente che apache risponda con codice 200, non appena lo rimettevo online l’allarme scompariva, inoltre sembrava proprio che apache stesse ignorando le regole settate nel file del virtualhost.

Questo perchè, se non diversamente settato, apache prende il primo virtualhost in ordine alfabetico ed inizia a rispondere su quello sia se si usa l’url completo sia se si usa l’ip.

Mi spiego meglio: nel mio caso ci sono due virtualhost uno per ilportalinux.it ed un altro per alexanghelone.it. Per com’era settato prima apache se si chiamava http://alexanghelone.it oppure http://188.72.199.31 si vedeva in ogni caso la home page del blog, ignorando però la configurazione del virtualhost stesso, non considerando proprio la direttiva AllowOverride.

La soluzione è stata quella di aggiungere dentro il file apache2.conf questo:

?

<VirtualHost *:80>
ServerName 188.72.199.31
<DirectoryMatch />
Order Deny,Allow
Deny from all
Options None
AllowOverride None
</DirectoryMatch>
</VirtualHost>
Cosi facendo apache chiamandolo per ip risponde con un codice 500 (accesso negato) ed il virtualhost riprende a funzionare correttamente.
Questa è una configurazione base, che andrebbe fatta sempre quando si installa apache, in questo caso sono stato coglione io a dimenticarmelo :D

Popularity: unranked [?]



Puoi visualizzare il post originale qui.

mar
27

Come sfruttare adeguatamente le pagine di errore 404 con WordPress

 

WordPress LogoCome molti di voi già sapranno, l’errore 404 è un codice standard del protocollo HTTP che indica che il client è in grado di comunicare con il server, ma il server non è in grado di trovare la pagina richiesta.

Come viene sottolineato su Wikipedia, l’errore 404 non deve essere confuso con “server non trovato” o simili errori, dove la connessione al server non può proprio essere stabilita.

Le ragioni più comuni per cui qualcuno si trova davanti a una pagina di errore sono:

  • un’indirizzo digitato male;
  • un collegamento datato proveniente dai motori di ricerca;
  • un link interrotto interno al blog.

Continua a leggere »

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

top