Nu pot accesa subdirectoarele non-wordpress deoarece wordpress le suprascrie cu o eroare 404
Mă refer la această întrebare pusă anterior și care nu a primit un răspuns adecvat: WordPress suprascrie subdirectoarele existente și de asemenea Paginile/codul non "WordPress" primesc eroare 404
Am aceeași problemă și am încercat aproape tot ce am găsit pe internet. Este cu siguranță legat de activarea permalink-urilor în WordPress. Cu toate acestea, am pus un nou fișier .htaccess în subdirector cu:
RewriteEngine off
și problema încă există. Chiar dacă șterg complet fișierul .htaccess din WordPress, problema persistă.
Am încercat și alte soluții sugerate precum ErrorDocument 401 "Acces neautorizat" și ErrorDocument 404 "Acces neautorizat" și Redirect 301 /subdirectorul-meu http://www.domeniul-meu.com/subdirectorul-meu/index.html în diverse locații, toate fără succes.
Poate cineva să ofere o altă soluție? Singura modalitate prin care pot rezolva este să dezactivez permalink-urile, dar avem nevoie ca acestea să fie activate.
Mulțumesc,
Nicole

Presupun că ai instalat WordPress în directorul rădăcină al site-ului și că directorii externi se află tot în rădăcină. Motivul pentru care se întâmplă acest lucru este că fișierele .htaccess urmează o ierarhie. Orice directivă din fișierul .htaccess de nivel superior se propagă în jos și se aplică tuturor directorilor de sub el.
Dacă acesta este cazul, poți face mai multe lucruri:
Mută WordPress în propriul său director. Vezi: http://codex.wordpress.org/Moving_WordPress Dacă muți WordPress într-un director separat, astfel încât să fie la același nivel în ierarhia directorilor serverului ca și celelalte directoare, regulile de rescriere ale WordPress nu vor mai afecta celelalte directoare.
RewriteEngine Off - în mod normal ar trebui să funcționeze. Dacă nu funcționează, verifică dacă nu folosești o setare DNS wildcard. Dacă ai un înregistrare DNS wildcard * care indică spre serverul tău web, aceasta poate provoca probleme cu .htaccess și subdomeniile.
În fișierul .htaccess din directorul rădăcină al site-ului, adaugă următoarele DEASUPRA directivelor WordPress din .htaccess:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR] RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR] RewriteRule ^.*$ - [L] </IfModule>
Una dintre aceste soluții ar trebui să funcționeze pentru tine.

Mulțumesc! Am încercat atâtea variante, dar aceasta este singura soluție care a funcționat în cazul meu: subdirector protejat prin parolă

A funcționat și pentru mine, poți să explici ce face și de ce funcționează?

Dacă tot primești erori 404 chiar și cu htaccess dezactivat și ai verificat căile și știi că fișierele sunt acolo, atunci singurele opțiuni rămase sunt acestea trei...
Opțiuni...
- Serverul rulează probabil un sistem de operare care face diferența între litere mari și mici. Asta înseamnă că dacă introduci o cale și nu folosești exact aceleași caractere și litere, pur și simplu nu va funcționa.
- Permisiuni: Este posibil să ai permisiuni greșite pe fișier, folder sau un folder părinte. Încearcă să schimbi permisiunile la 755 pentru fișiere, foldere și foldere părinte. Dacă ai acces SSH (terminal), mergi la root și rulează comanda "chmod -R 755 mydir" - aceasta va seta recursiv permisiunile pentru toate.
- Dacă încă ai probleme după toate astea, atunci ai o problemă de configurare a serverului (probabil Apache). Va trebui să discuți cu furnizorul de hosting.
Dacă niciuna dintre aceste soluții nu funcționează, atunci ai nevoie de un nou host.

Văd că acest thread are câteva luni, dar dacă tot nu ai reușit să rezolvi problema!
Am avut o problemă similară, dar în cazul meu instalarea WordPress era într-un subdirector, ceea ce împiedica accesul la folderele din root (în afara directorului de instalare WP), dar doar când permalinkurile erau activate. Pentru a rezolva, am copiat atât index.php cât și .htaccess (copiere, nu mutare) din subdirectorul unde este instalat WordPress și le-am plasat în root public_html (sau orice alt subdirector pe care încerci să-l accesezi în afara directorului de instalare WP). Fișierul .htaccess are deja condițiile de rewrite pentru permalinkuri:
RewriteEngine On
RewriteBase /subdirectoryinstallfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Activează permalinkurile pentru refresh și asta a rezolvat toate problemele. Asigură-te că permisiunile pentru folderele root sunt setate corect, deoarece și asta mi-a cauzat probleme în trecut.

Când copiez fișierele mele pe același server, dar într-un subdirector diferit, atunci când încerc să accesez paginile, index.php funcționează corect, dar celelalte pagini nu funcționează și primesc o eroare 404. Scuze pentru engleza mea proastă!!
Tocmai am verificat fișierul meu .htaccess original:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
și am pus noul fișier cu:
# BEGIN WordPress RewriteEngine On RewriteBase /subdirectoryfolder RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /subdirectoryfolder/index.php [L] # END WordPress

Salut @lizette. Bine ai venit pe forumurile WPSE. Poate dorești să verifici cum funcționează formatarea aici.

După ce aproape mi-am smuls părul din cap încercând să editez fișierul htaccess, am găsit în sfârșit o soluție care funcționează pentru WordPress.
Am întâmpinat această problemă după ce am instalat un script CodeIgniter în același director rădăcină unde este instalat WordPress.
După ce am încercat toate trucurile enumerate aici, tot primeam erori 404 pe paginile asociate cu noul script.
Am observat că fișierul htaccess al WordPress suprascria htaccess-ul scriptului. De asemenea, am observat că alte instalări WordPress din același director nu aveau această eroare 404.
Pur și simplu am preluat htaccess-ul de la noua instalare WordPress din același director al serverului și l-am adăugat în folderul unde se află scriptul meu. Iată cum arată:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /numele-directorului/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /numele-directorului/index.php [L]
</IfModule>
Înlocuiți numele-directorului cu numele directorului dumneavoastră și plasați acest fișier htaccess în folderul unde se află scriptul.
Exemplu: Dacă site-ul este instalat aici
public_html/
iar noul folder este localizat
`public_html/exemplu`
copiați htaccess-ul de mai sus și salvați-l în folderul 'exemplu' și ar trebui să funcționeze.

Am analizat răspunsurile de aici de mai multe ori, întrucât am întâlnit o problemă similară. Am avut fișiere într-un subdirector care aruncau o eroare 404 atunci când încercam să le accesez. Toate modificările din .htaccess nu au reușit să remedieze problema, așa cum spune Kirsten Douglas, WordPress deja se ocupă de asta.
Soluția mea
Am găsit acest articol după ce am verificat error_log pe server. Primeam un mesaj despre un uid greșit pentru scripturi. De asemenea, am observat că eroarea 404 nu era generată din cauza fișierului, ci pentru că serverul nu putea încărca un fișier 500.html, adică aveam o eroare 500.
S-a dovedit că am creat fișierele ca root și trebuia să schimb proprietarul la cel al fișierelor web.
Sper că acest lucru îi va ajuta pe alții care au întâlnit aceeași problemă!

Ar trebui să poți adăuga o directivă RewriteCond
care va asigura că regulile WordPress sunt ignorate pentru cererile din subdirectorul tău.
RewriteCond %{REQUEST_URI} !^/mysubdirectory
# restul regulilor de rescriere WordPress
Totuși, spui că chiar și fără .htaccess
din WordPress întâmpini problema? Care este conținutul fișierului .htaccess
din subdirectorul tău?
