.htaccess file ignorato sul server Ubuntu


0

Sto avendo un problema con un .htaccess file su un server Ubuntu appena installato che esegue Apache2.

Il file .htaccess nella directory in cui si trovano i file WordPress non viene preso in considerazione quando il server carica le pagine. Non c'è un AllowOverride dichiarazione nel file apache2.conf, ma l'impostazione predefinita è Alle non cambia nulla se ne includo uno.

Ho provato a includere i contenuti del locale .htaccess file in una sezione. Ho anche provato questo:

<Directory /var/www/mydomain.com/html>
AllowOverride All
</Directory>

Ho anche provato a cambiare tutte le istanze di AllowOverride in / etc / apache2 / sites-available / default (che sono tutti impostati su None per impostazione predefinita) a All.

Ma non ho avuto fortuna.

Non sei sicuro di come risolvere questo.

Risposte:


0

È necessario assicurarsi che mod_rewrite sia abilitato:

sudo a2enmod rewrite

Quindi riavviare apache


In realtà, ho controllato: era già abilitato. Ma alla fine ho trovato che cosa stava causando! Vedi sotto.
Donald Jenkins

0

Ho elaborato il problema da quando ho aperto questo thread: c'erano due problemi che avrei pensato si sarebbero verificati in qualsiasi configurazione LAMP vaniglia installata in base al Articolo di Knowledge Temple Knowledgebase (che era quello che ho usato per impostare il (ve) server ).

Innanzitutto, era il modulo di riscrittura. Sembrava il mio .htaccess i file non venivano letti dal server perché un modulo di riscrittura deve essere abilitato: sembra essere il default su una nuova installazione come quella appena eseguita. Chi lo sapeva?

Abilitare il modulo è piuttosto semplice: ho solo bisogno di creare un collegamento simbolico al rewrite.load file dalla directory mods-available alla directory abilitata a mods (tutti trovati, in questo caso, nella directory apache2, a /etc/apache2 ).

Ha eseguito il seguente:

$ cd /etc/apache2/mods-enabled
$ ln -s /etc/apache2/mods-available/rewrite.load rewrite.load

In secondo luogo, ho concluso che ho anche bisogno di cambiare tutte le istanze di AllowOverride nel /etc/apache2/sites-available/default (che sono tutti impostati su None per impostazione predefinita) a All (vedere Questo articolo che spiega il problema).

Infine, è stata la domanda su come applicare le regole. In realtà ho scelto di eliminare il mio file .htaccess e inserire tutte le sue regole in a <Directory> sezione in http.conf (che ora è un file separato ancora chiamato in apache2.conf e che userò per includere tutte le mie personalizzazioni), perché l'impostazione AllowOverride a None e fare affidamento su apache2.conf perché tutto induce un aumento di velocità poiché il server non deve più controllare per .htaccess file ad ogni livello prima di caricare una pagina. Ho quindi eliminato il .htaccess, impostato AllowOverride a Nonee le regole continuano a essere caricate correttamente.


Nota che il comando a2enmod sotto ubuntu crea il collegamento simbolico per te. È sempre bene capire cosa sta succedendo dietro le quinte, ma se lo fai, allora usare il comando eviterà qualsiasi errore di tipo
Paul

Sì, ho capito che alla fine. Grazie!
Donald Jenkins
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.