Probleme cu subdirectoarele în .htaccess pe Wordpress

4 feb. 2011, 09:24:56
Vizualizări: 8.19K
Voturi: 4

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>
3
Comentarii

Poți să adaugi aici fișierul tău .htaccess?

User User
4 feb. 2011 09:30:45

Ai o copie a fișierului tău .htaccess pe care o pot vedea?

User User
4 feb. 2011 09:32:16

@Jeff Wain - Nu sunt complet sigur care este întrebarea ta. Se pare că ai o soluție, deci ce anume cauți? Și referitor la fișierele .htaccess, funcționează pentru tine sau nu?

MikeSchinkel MikeSchinkel
4 feb. 2011 16:14:13
Toate răspunsurile la întrebare 1
2

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).

4 feb. 2011 16:20:08
Comentarii

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 Jeff Wain
4 feb. 2011 17:07:30

@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.

hakre hakre
4 feb. 2011 18:52:26