Nu pot accesa subdirectoarele non-wordpress deoarece wordpress le suprascrie cu o eroare 404

16 iun. 2011, 10:54:22
Vizualizări: 111K
Voturi: 43

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

3
Comentarii

Ce se întâmplă dacă redenumești index.php în index.bak în folderul root al WordPress? Directorul rămâne accesibil sau nu?

Horttcore Horttcore
16 iun. 2011 11:44:21

Ai încercat să redefini URL-ul de bază în fișierul .htaccess din subfolder (folosind acel subfolder ca valoare)?

Cédric G Cédric G
5 aug. 2011 18:19:53

Uau, nu pot servi un fișier HTML dintr-un subfolder! Lucrez la asta de peste o oră și încă fără rezultat. Ar trebui să fie unul dintre cele mai simple lucruri de făcut. Ce procent din milioanele de site-uri folosesc subfoldere? AAAAAAAAAAAAAAAAAAAA

Paul McCarthy Paul McCarthy
31 aug. 2022 16:31:20
Toate răspunsurile la întrebare 8
0
33

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:

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

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

  3. Î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.

17 iun. 2011 17:33:00
3
22

Această soluție a funcționat pentru mine în trecut într-o situație similară:

Adaugă acest cod în partea de sus a fișierului .htaccess

ErrorDocument 401 default
16 iun. 2011 12:39:43
Comentarii

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

Rado Rado
7 mar. 2013 01:27:48

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

Asaf Asaf
10 aug. 2013 11:27:48

A funcționat și pentru mine.. nu folosesc WordPress ci OpenCart și am aceeași problemă. O explicație ar fi foarte utilă.

You Old Fool You Old Fool
28 aug. 2014 22:09:24
0

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

  1. 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.
  2. 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.
  3. 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.

17 iun. 2011 17:44:49
0

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.

25 mai 2012 21:46:55
2

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
13 sept. 2012 14:14:06
Comentarii

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

Pothi Kalimuthu Pothi Kalimuthu
21 sept. 2012 05:59:46

Doar ai grijă să nu schimbi niciodată structura permalinkurilor, pentru că atunci când faci asta, WP va suprascrie orice se află între #BEGIN WordPress și #END WordPress

clayRay clayRay
13 oct. 2020 06:53:26
0

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.

10 dec. 2015 15:59:38
0

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ă!

2 oct. 2013 10:54:14
0

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?

16 iun. 2011 11:58:45