Domanda

Questo è il problema opposto rispetto alla maggior parte di cui ho letto. Sto eseguendo Ubuntu 8.04 su un'istanza di Amazon con Apache 2.2.8 e non riesco a capire perché l'impostazione di AllowOverride su None per root non impedisce l'inclusione del mio file .htaccess.

Ho una sottodirectory con hello.py e un file .htaccess. Quando sfoglio il file, funziona perfettamente con modpython che serve il file. Se metto un po 'di immondizia in .htaccess ottengo un errore del server, quindi so che viene utilizzato il file .htaccess. Inoltre, se elimino il file .htaccess, hello.py non è più server di modpython, ma il browser tenta di aprirlo.

In uno dei miei siti disponibili (collegato in siti abilitati), ho " AllowOverride None " per la directory principale. Ho pensato che questo avrebbe impedito a .htaccess di essere incluso da root e da tutte le sue sottodirectory che dovrebbero impedire a hello.py di non essere servito da mod_python. Tuttavia, continua a essere servito bene e posso provare che .htaccess è ancora incluso perché quando lo modifico, vedo i risultati nel mio browser.

Forse c'è qualcosa che non capisco sul mio file nei siti abilitati. Questo è il file che sto usando:

NameVirtualHost *:8080 
<VirtualHost *:8080>
<Directory />
AllowOverride None
</Directory>
</VirtualHost>

Grazie per l'aiuto.

È stato utile?

Soluzione

Il motivo per cui il file non viene servito tramite mod_python quando si elimina .htaccess è perché in esso si trova l'installazione di mod_python. Se sposti queste cose nel tuo file disponibile sul sito, puoi eliminare .htaccess, chiudere un occhio sul problema e chiamarlo un giorno.

Se questo non ti soddisfa, allora sul perché .htacess viene letto, non posso dirlo. Hai ragione sul fatto che AllowOverride None dovrebbe impedire la lettura del file. Hai considerato la possibilità di aver rovinato qualcosa quando hai aggiunto il sito virtuale? Prova a gettare un po 'di immondizia nella configurazione e vedi se si lamenta, solo per essere sicuro che venga letto affatto.

Altri suggerimenti

AllowOverride è consentito solo in <= > sezioni, quindi hai fatto tutto nel modo giusto.

Un problema che potresti avere è che altre (sotto -) <Directory> - sezioni impostano None su qualcosa di diverso da /var/www. Ciò sovrascriverà l'impostazione per queste sottodirectory. Io uso

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride AuthConfig 
    Order allow,deny
    allow from all
</Directory>

e in .htaccess (il mio docroot) posso usare mod_python es.

Il motivo per cui <Directory /> non funziona più se si elimina il <=> è che <=> l'installazione è generalmente in <=> file.

Se hai bisogno di ulteriori informazioni, ti preghiamo di inviarci la tua configurazione.

PS: in effetti la documentazione sopra menzionata dice che non dovresti mai impostare <=> su qualcosa di non <=> in <=>.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top