Problema con le sottodirectory in .htaccess di Wordpress

4 feb 2011, 09:24:56
Visualizzazioni: 8.19K
Voti: 4

Sto avendo problemi con la mia installazione di Wordpress che non mi permette di accedere alle sottodirectory, in particolare a un'installazione di CodeIgniter su mydomain.com/codeigniter. So che tecnicamente dovrebbe funzionare senza problemi e riconoscere le cartelle così come vengono create. Tuttavia, questo non sta accadendo. Sospetto che abbia a che fare con un plugin, ma ho provato a disabilitarli tutti e il problema persiste (mi reindirizza alla pagina 404 di Wordpress).

Nel frattempo ho trovato una soluzione alternativa. Se creo un sottodominio, qualcosa cambia e tutto funziona come dovrebbe, accedendo alla cartella sia tramite il percorso diretto che tramite il nome del sottodominio.

Qualche aiuto? Ho provato diverse modifiche ai file .htaccess in entrambe le directory, ma cambiarli non produce alcun effetto.

Aggiornamento: Ecco il file .htaccess di Wordpress nella cartella root:

DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php

# INIZIO WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?codeigniter/
RewriteRule . /index.php [L]
</IfModule>

# FINE WordPress

E il file .htaccess di CodeIgniter nella sottodirectory /codeigniter/.

DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /codeigniter
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>
3
Commenti

Puoi aggiungere qui il tuo file .htaccess?

User User
4 feb 2011 09:30:45

Hai una copia del tuo file .htaccess che posso vedere?

User User
4 feb 2011 09:32:16

@Jeff Wain - Non sono completamente chiaro su quale sia la tua domanda. Sembra che tu abbia trovato una soluzione, quindi cosa stai cercando? E per quanto riguarda i file .htaccess, funzionano per te o no?

MikeSchinkel MikeSchinkel
4 feb 2011 16:14:13
Tutte le risposte alla domanda 1
2

Anche se i file statici e le directory funzionano con un'installazione di WordPress con mod_rewrite nella root del server, potresti aver bisogno di escludere la tua sottodirectory CodeIgniter da quella configurazione di mod_rewrite.

Puoi farlo inserendo un file .htaccess aggiuntivo nella directory di CodeIgniter e disabilitando mod_rewrite al suo interno:

<IfModule mod_rewrite.c> 
RewriteEngine off
</IfModule>

Articoli correlati: apache - Disabilita mod_rewrite per sottodirectory

Normalmente questo risolve il problema. Ma può essere meno banale nel caso in cui quella sottodirectory necessiti di una configurazione mod_rewrite propria (come richiesto da alcuni framework PHP).

Per capire come funziona la configurazione di Apache, consulta File di configurazione (Manuale Apache) e Direttiva AllowOverride (Manuale Apache).

4 feb 2011 16:20:08
Commenti

Ok, funziona! L'ho testato senza il sottodominio applicato e sembra funzionare, ma vedrò nel tempo se Wordpress decide di sovrascrivere nuovamente le cose prima di eliminarlo. :)

Jeff Wain Jeff Wain
4 feb 2011 17:07:30

@Jeff Wain per prevenire ciò, basta inserirlo in un file .htaccess autonomo (ad esempio nella sottodirectory). Wordpress modificherà solo il file .htaccess nella directory di installazione. Puoi inoltre inserirlo nella configurazione del server apache. Anche quello non verrà sovrascritto da Wordpress.

hakre hakre
4 feb 2011 18:52:26