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
11

L’importanza dei permalinks in WordPress

 

Permalinks Migration PluginL’utilizzo di una corretta struttura dei permalinks è un’aspetto che viene spesso sottovalutato da molti bloggers, in particolare da chi ancora non conosce bene WordPress.
Se state utilizzando la struttura di default dei permalinks (i links ai post contengono punti interrogativi e numeri), vi consiglio di proseguire nella lettura di questo post in cui spiegerò come cambiarla sia nel caso in cui abbiate appena installato WordPress, sia se avete già pubblicato degli articoli.
La struttura dei permalinks è uno dei tanti fattori che contribuiscono all’ottimizzazione del blog per i motori di ricerca (SEO). Utilizzando la struttura di default il vostro blog riceverà minor traffico dai motori di ricerca rispetto a quanto potrebbe riceverne se utilizzasse una struttura corretta. Continua a leggere »

Popularity: 2% [?]



Puoi visualizzare il post originale qui.

top