Probleme cu subdirectoarele în .htaccess pe Wordpress
Am avut unele probleme cu instalarea mea de Wordpress care nu-mi permite accesul la subdirectoare, în special o instalare CodeIgniter la mydomain.com/codeigniter. Știu că tehnic ar trebui să funcționeze fără probleme și să recunoască folderele pe măsură ce sunt create. Totuși, acest lucru nu se întâmplă. Bănuiesc că are legătură cu un plugin, dar am încercat să le dezactivez pe toate și problema persistă (mă redirecționează către pagina 404 din Wordpress).
Am găsit o soluție temporară. Dacă creez un subdomeniu, ceva se schimbă și totul funcționează cum ar trebui, accesând folderul atât prin calea directă, cât și prin numele subdomeniului.
Vă rog ajutați-mă? Am încercat tot felul de modificări în fișierele .htaccess din ambele directoare, dar schimbările nu au niciun efect.
Actualizare: Iată fișierul .htaccess al Wordpress din folderul root:
DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php
# ÎNCEPUT 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>
# SFÂRȘIT WordPress
Și fișierul .htaccess al CodeIgniter din subdirectorul /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>
Chiar dacă fișierele și directoarele statice funcționează cu o instalare WordPress care folosește mod_rewrite în rădăcina serverului, este posibil să fie necesar să excludeți subdirectorul CodeIgniter din această configurare mod_rewrite.
Puteți face acest lucru plasând un fișier suplimentar .htaccess în directorul CodeIgniter și dezactivând mod_rewrite acolo:
<IfModule mod_rewrite.c>
RewriteEngine off
</IfModule>
Articole conexe: apache - Dezactivarea mod_rewrite pentru un subdirector
De obicei, această soluție funcționează pentru mine. Dar poate fi mai complicat în cazul în care acel subdirector necesită propria configurare mod_rewrite (așa cum au nevoie unele framework-uri PHP).
Pentru a înțelege cum funcționează configurația Apache, consultați Fișierele de configurare (Manualul Apache) și Directiva AllowOverride (Manualul Apache).

Ok, funcționează! Am testat fără subdomeniu aplicat și pare să meargă, dar voi urmări în timp dacă Wordpress decide să rescrie din nou lucrurile înainte să renunț la el. :)

@Jeff Wain pentru a preveni asta, poți să-l plasezi într-un fișier .htaccess separat (de exemplu, în subdirector). Wordpress va modifica doar fișierul .htaccess din directorul de instalare. În plus, poți să-l adaugi în configurația serverului Apache. Asta nu va fi suprascris de Wordpress.
