Nie można uzyskać dostępu do podkatalogów innych niż Wordpress, ponieważ Wordpress zastępuje je z błędem 404


34

Odnoszę się do tego pytania, które zostało wcześniej zadane i na które nie ma odpowiedniej odpowiedzi: Wordpress przesłaniający rzeczywiste podkatalogi, a także strony / kod Non "Wordpress", błąd 404

Mam ten sam problem i próbowałem prawie wszystkiego, co znalazłem w sieci. Jest to z pewnością związane z włączeniem permalinks w wordpress. Jednak w podkatalogu umieściłem nowy plik .htaccess z:

RewriteEngine off

i problem nadal istnieje. Nawet jeśli całkowicie usunę plik .htaccess wordpress, problem nadal istnieje.

Wypróbowałem też inne sugerowane rozwiązania, takie jak ErrorDocument 401 „Nieautoryzowany dostęp” i ErrorDocument 404 „Nieautoryzowany dostęp” i Przekierowanie 301 / mysubdirectory http://www.mydomain.com/mysubdirectory/index.html w różnych lokalizacjach - wszystko bezskutecznie .

Czy ktoś może zaoferować inne rozwiązanie? Jedynym sposobem, w jaki mogę to naprawić, jest wyłączenie permalinków, ale musimy je włączyć.

Dzięki,

Nicole


Co się stanie, jeśli zmienisz nazwę pliku index.php na index.bak w folderze głównym WordPress? Czy katalog jest nadal niedostępny?
Horttcore

Czy próbowałeś przedefiniować podstawowy adres URL w swoim podfolderze .htaccess (z tym podfolderem dla wartości)?
Cédric G

Odpowiedzi:


28

Zakładam, że umieścisz WordPress w katalogu głównym witryny, a katalogi zewnętrzne również znajdują się w katalogu głównym witryny. Dzieje się tak dlatego, że pliki .htaccess mają hierarchię. Wszystkie dyrektywy znajdujące się w najwyższym pliku .htaccess spływają w dół i mają zastosowanie do wszystkich katalogów poniżej.

W takim przypadku możesz zrobić jedną z kilku rzeczy:

  1. Przenieś WordPress do własnego katalogu. Zobacz: http://codex.wordpress.org/Moving_WordPress Jeśli przenosisz WordPress do własnego katalogu, aby znajdował się na tym samym poziomie w hierarchii katalogów serwera, co inne katalogi, reguły przepisywania WordPress nie mogą wpływać na inne katalogi.

  2. RewriteEngine Off - normalnie by to działało. Jeśli to nie działa, sprawdź, czy nie używasz wieloznacznego ustawienia DNS. Jeśli masz zapisany znak wieloznaczny * nazwy hosta wskazujący na serwer sieciowy w ustawieniach DNS, może to spowodować spustoszenie w .htaccess i poddomenach.

  3. W pliku .htaccess w katalogu głównym witryny dodaj następujące POWYŻEJ dyrektyw WordPress .htaccess:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR]
    RewriteRule ^.*$ - [L]
    </IfModule>

Jeden z nich powinien działać dla Ciebie.


17

W przeszłości działało to dla mnie w podobnej sytuacji:

Połóż to na .htaccess

ErrorDocument 401 default

2
Dzięki! Próbowałem już wielu rzeczy, ale jest to jedyne rozwiązanie, które zadziałało w moim przypadku: chroniony hasłem podkatalog
Rado

2
Pracowałem również dla mnie, jakieś wyjaśnienie, co robi i dlaczego działa?
Asaf,

Działa to dla mnie .. nie używając wordpress, ale OpenCart i mając ten sam problem. Wyjaśnienie byłoby bardzo pomocne.
billynoah

4

kiedy kopiuję moje pliki na ten sam serwer, ale z innym folderem podkatalogu, więc kiedy próbowałem uzyskać dostęp do moich stron, index.php działa dobrze, ale inne strony nie działają i daje mi błąd 404. Przepraszam za mój zły język angielski!!

Patrzę tylko na mój oryginał:

# ROZPOCZNIJ WordPress

RewriteEngine On
RewriteBase /
RewriteCond% {REQUEST_FILENAME}! -F
RewriteCond% {REQUEST_FILENAME}! -D
RewriteRule. /index.php [L]

# KONIEC WordPress

i włóż nowy z

# ROZPOCZNIJ WordPress

RewriteEngine On
RewriteBase / subdirectoryfolder
RewriteCond% {REQUEST_FILENAME}! -F
RewriteCond% {REQUEST_FILENAME}! -D
RewriteRule. /subdirectoryfolder/index.php [L]

# KONIEC WordPress

Cześć @lizette. Witamy na forach WPSE. Możesz sprawdzić, jak działa tutaj formatowanie .
Pothi Kalimuthu

4

Widzę, że ten wątek ma kilka miesięcy, ale na wypadek, gdybyś nigdy nie zadziałał!

Miałem podobny problem, ale mój problem polegał na tym, że instalacja wordpress znajdowała się w podkatalogu, co uniemożliwiało dostęp URL do folderów w katalogu głównym (poza katalogiem instalacyjnym WP), ale tylko wtedy, gdy włączone były permalinki. Aby rozwiązać ten problem, skopiowałem zarówno index.php, jak i .htaccess (nie kopiuj nie przenieś) z podkatalogu, w którym znajduje się instalacja WP, i umieściłem je w katalogu głównym public_html (lub w dowolnym podkatalogu, do którego próbujesz uzyskać dostęp poza instalacją WP informator). Plik .htaccess ma już warunki ponownego zapisu dla linków bezpośrednich:

RewriteEngine On
RewriteBase /subdirectoryinstallfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Włącz permalinki dla odświeżania i to rozwiązało wszystkie problemy. Upewnij się, że twoje uprawnienia do folderów głównych są również ustawione poprawnie, ponieważ w przeszłości powodowało to problemy.


3

Jeśli nadal otrzymujesz 404 z wyłączonym htaccess i zweryfikowałeś ścieżki i wiesz, że pliki tam są, pozostały Ci tylko trzy opcje ...

Opcje ...

  1. Serwer prawdopodobnie obsługuje system operacyjny z rozróżnianiem wielkości liter. Co oznacza, że ​​jeśli wpisujesz ścieżkę i nie używasz dokładnych znaków, a obudowa po prostu nie będzie działać.
  2. Uprawnienia: możesz mieć złe uprawnienia do pliku lub folderu lub folderu nadrzędnego. Spróbuj zmienić uprawnienia do 755 na pliki, foldery i foldery nadrzędne. Jeśli masz do niego dostęp ssh (terminal), przejdź do swojego katalogu głównego i uruchom ten „chmod -R 755 mój_katalog”, który rekurencyjnie ustawi uprawnienia dla wszystkich z nich.
  3. Jeśli mimo wszystko nadal masz problem, masz problem z konfiguracją serwera (prawdopodobnie Apache). Będziesz musiał porozmawiać o tym z dostawcą usług hostingowych.

Jeśli to nie działa, potrzebujesz nowego hosta.


2

Po prawie wyskubaniu włosów podczas edycji htaccess w końcu znalazłem rozwiązanie, które będzie działać dla WordPress.

Miałem ten problem po zainstalowaniu skryptu Codeiginter w tym samym katalogu głównym, w którym zainstalowany jest WordPress.

Po wypróbowaniu wszystkich podanych tutaj sztuczek wciąż otrzymywałem błędy 404 na stronach związanych z nowym skryptem.

Zauważyłem, że htaccess WordPress nadpisuje htaccess skryptu. Zauważyłem również, że inne instalacje WordPress w tym samym katalogu nie miały tego błędu 404.

Po prostu adoptowałem htaccess z nowej instalacji WordPress w tym samym katalogu serwera i dodałem go do folderu, w którym znajduje się mój skrypt. Oto jak to wygląda:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subdirectoryname/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subdirectoryname/index.php [L]
</IfModule>

Zastąp nazwę podkatalogu nazwą katalogu i umieść ten plik htaccess w folderze, w którym znajduje się skrypt.

Przykład: jeśli witryna jest tutaj zainstalowana

public_html/

i nowy folder się znajduje

`public_html/example`

skopiuj powyższy plik htaccess i zapisz go w folderze „example”, a to powinno działać.


1

Wiele razy sprawdzałem odpowiedzi tutaj, ponieważ napotkałem podobny problem. Mam pliki w podkatalogu, które zgłaszają błąd 404, gdy próbuję uzyskać do nich dostęp. Wszystkie elementy .htaccess nie naprawiły tego, jak mówi Kirsten Douglas, Wordpress już to robi.

Moje rozwiązanie

Znalazłem ten artykuł po sprawdzeniu dziennika błędów na serwerze. Otrzymywałem wiadomość o złym identyfikatorze użytkownika dla skryptów. Zauważyłem również, że 404 nie został wyrzucony z powodu pliku, ale ponieważ serwer nie mógł obsłużyć pliku 500.html, tj. Miałem błąd 500.

Okazuje się, że utworzyłem pliki jako root i potrzebowałem zmienić właściciela na właściciela plików internetowych.

Mam nadzieję, że to pomoże innym, którzy mieli ten sam problem!


0

Powinieneś być w stanie po prostu dodać RewriteConddyrektywę, która sprawi, że reguły WordPress będą ignorowane dla żądań w twoim podfolderze.

RewriteCond %{REQUEST_URI} !^/mysubdirectory
# rest of WordPress rewrite rules

Mówisz jednak, że nawet bez WordPress .htaccessmasz problem? Jaka jest zawartość twojego podkatalogu .htaccess?

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.