web-dev-qa-db-de.com

Kein Zugriff auf Nicht-WordPress-Unterverzeichnisse möglich, da WordPress diese mit einem 404-Fehler überschreibt

Ich beziehe mich auf diese Frage, die zuvor gestellt und nicht angemessen beantwortet wurde: Wordpress überschreibt die tatsächlichen Unterverzeichnisse und auch Nicht "Wordpress" -Seiten/Code, der 404-Fehler erhält

Ich habe das gleiche Problem und habe fast alles ausprobiert, was ich im Internet gefunden habe. Es hängt definitiv damit zusammen, dass Permalinks in WordPress aktiviert sind. Ich habe jedoch eine neue .htaccess-Datei im Unterverzeichnis abgelegt mit:

RewriteEngine aus

und das problem besteht immer noch. Auch wenn ich die .htaccess-Datei von WordPress vollständig lösche, besteht das Problem immer noch.

Ich habe auch einige andere Lösungsvorschläge ausprobiert, wie z. B. ErrorDocument 401 "Unauthorized Access" und ErrorDocument 404 "Unauthorized Access" und Redirect 301/mysubdirectory http://www.mydomain.com/mysubdirectory/index.html an verschiedenen Stellen alles ohne Erfolg.

Kann jemand bitte eine andere Lösung anbieten? Ich kann das nur beheben, indem ich Permalinks deaktiviere, aber wir müssen sie aktivieren.

Vielen Dank,

Nicole

33
Nicole

Ich gehe davon aus, dass Sie WordPress in Ihr Site-Stammverzeichnis einfügen und die externen Verzeichnisse sich ebenfalls in Ihrem Site-Stammverzeichnis befinden. Der Grund dafür ist, dass .htaccess-Dateien einer Hierarchie folgen. Alle Anweisungen in der .htaccess-Datei der obersten Ebene fließen nach unten und gelten für alle darunter liegenden Verzeichnisse.

In diesem Fall können Sie eine der folgenden Aktionen ausführen:

  1. Verschiebe dein WordPress in ein eigenes Verzeichnis. Siehe: http://codex.wordpress.org/Moving_WordPress Wenn Sie WordPress in ein eigenes Verzeichnis verschieben, sodass es sich in Ihrer Serververzeichnishierarchie auf derselben Ebene befindet wie die anderen Verzeichnisse, können die WordPress-Umschreiberegeln die anderen nicht beeinflussen verzeichnisse.

  2. RewriteEngine Off - das würde normalerweise funktionieren. Wenn dies nicht funktioniert, prüfen Sie, ob Sie keine Wildcard-DNS-Einstellung verwenden. Wenn Sie in Ihren DNS-Einstellungen einen Wildcard * -Hostnameneintrag haben, der auf Ihren Webserver verweist, kann dies zu Schäden mit .htaccess und Subdomains führen.

  3. Fügen Sie in der .htaccess-Datei in Ihrem Site-Stammverzeichnis ÜBER den .htaccess-Anweisungen von WordPress Folgendes hinzu:

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

Eine davon sollte für Sie arbeiten.

28
Elpie

Das hat bei mir in der Vergangenheit für eine ähnliche Situation funktioniert:

Setzen Sie dies oben auf .htaccess

ErrorDocument 401 default
17
mike23

Ich sehe, dass dieser Thread ein paar Monate alt ist, aber nur für den Fall, dass Sie ihn nie zum Laufen gebracht haben!

Ich hatte ein ähnliches Problem, aber mein Problem war, dass sich die WordPress-Installation im Unterverzeichnis befand, wodurch der URL-Zugriff auf Ordner im Stammverzeichnis (außerhalb des Installationsverzeichnisses WP) verhindert wurde, jedoch nur, wenn Permalinks aktiviert waren. Um dieses Problem zu lösen, habe ich sowohl index.php als auch .htaccess (Kopieren ohne Verschieben) aus dem Unterverzeichnis kopiert, in dem sich die WP -Installation befindet, und sie beide im Stammverzeichnis public_html (oder in dem Unterverzeichnis, das Sie versuchen) abgelegt Zugriff außerhalb des WP Installationsverzeichnisses). Die .htaccess-Datei enthält bereits die Umschreibebedingungen für Permalinks:

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

Aktivieren Sie Permalinks zum Aktualisieren und es wurden alle Probleme behoben. Stellen Sie sicher, dass Ihre Berechtigungen für die Stammordner ebenfalls korrekt festgelegt sind, da dies in der Vergangenheit zu Problemen geführt hat.

4
Kirsten Douglas

wenn ich meine Dateien auf den gleichen Server kopiere, aber mit einem anderen Unterverzeichnis-Ordner. Wenn ich also versuchte, auf meine Seiten zuzugreifen, funktioniert index.php einwandfrei, aber die anderen Seiten funktionieren nicht und geben mir einen 404-Fehler. Entschuldigung für mein schlechtes Englisch!!

Ich schaue mir nur das Original an:

 # BEGIN WordPress 
 
 RewriteEngine On 
 RewriteBase /[.____.)RewriteCond% {REQUEST_FILENAME}! -F 
 RewriteCond% {REQUEST_FILENAME} ! -d 
 RewriteRule. /index.php [L] 
 
 # ENDE WordPress

und lege die neue mit

 # BEGIN WordPress 
 
 RewriteEngine On 
 RewriteBase /subdirectoryfolder[.____.)RewriteCond% {REQUEST_FILENAME}! -F 
 RewriteCond% {REQUEST_FILENAME }! -d 
 RewriteRule. /subdirectoryfolder/index.php [L] 
 
 # END WordPress 
3
lizette

Wenn Sie immer noch 404 mit deaktiviertem htaccess erhalten und die Pfade überprüft haben und wissen, dass die Dateien dort sind, bleiben nur diese drei Optionen übrig ...

Optionen...

  1. Auf dem Server wird möglicherweise ein Betriebssystem mit Groß- und Kleinschreibung ausgeführt. Das heißt, wenn Sie einen Pfad eingeben und nicht die genauen Zeichen und Groß- und Kleinschreibung verwenden, funktioniert dies einfach nicht.
  2. Berechtigungen: Möglicherweise verfügen Sie über die falschen Berechtigungen für die Datei oder den Ordner oder einen übergeordneten Ordner. Versuchen Sie, die Berechtigungen für die Dateien, Ordner und übergeordneten Ordner auf 755 zu ändern. Wenn Sie ssh (Terminal) -Zugriff darauf haben, gehen Sie zu Ihrem Stammverzeichnis und führen Sie dieses "chmod -R 755 mydir" aus. Dadurch werden die Berechtigungen für alle von ihnen rekursiv festgelegt.
  3. Wenn Sie danach immer noch ein Problem haben, haben Sie ein Problem mit der Serverkonfiguration (wahrscheinlich Apache). Sie müssen mit Ihrem Hosting-Anbieter darüber sprechen.

Wenn nichts davon funktioniert, brauchen Sie einen neuen Host. Ich empfehle hostmonster.com für günstiges Hosting, das großartigen Support bietet und SSH-Zugang bietet. Ich benutze sie, kostet etwa 5 Dollar pro Monat. Wenn Sie etwas benötigen, das robuster und skalierbarer ist, aber dennoch gute Preise bietet, empfehle ich mediatemple.net. Sie bieten skalierbares Cloud-Hosting ab 20 US-Dollar pro Monat. Ich würde mich allerdings nur für die zweite Option entscheiden, wenn Sie einen dramatischen Anstieg des Datenverkehrs erwarten oder bereits einen sehr hohen Datenverkehr haben (ich spreche von 500 bis 1.000 + pro Stunde).

3
Patrick

Nachdem ich mich beinahe am Haar gerupft hatte, fand ich endlich eine Lösung, die für WordPress funktioniert.

Ich hatte dieses Problem nach der Installation eines Codeiginter-Skripts im selben Stammverzeichnis, in dem WordPress installiert ist.

Nachdem ich alle hier aufgeführten Tricks ausprobiert hatte, wurden auf den mit dem neuen Skript verknüpften Seiten immer noch 404-Fehler angezeigt.

Ich bemerkte, dass der WordPress-htaccess den htaccess des Skripts überschritt. Ich habe auch festgestellt, dass andere WordPress-Installationen im selben Verzeichnis diesen 404-Fehler nicht hatten.

Ich habe einfach den htaccess aus der neuen WordPress-Installation in dasselbe Serververzeichnis übernommen und in den Ordner eingefügt, in dem sich mein Skript befindet. So sieht es aus:

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

Ersetzen Sie Unterverzeichnisname durch den Namen Ihres Verzeichnisses und platzieren Sie diese htaccess-Datei in dem Ordner, in dem sich Ihr Skript befindet.

Beispiel: Wenn die Site hier installiert ist

public_html/

und der neue Ordner befindet sich

`public_html/example`

kopieren Sie den obigen htaccess und speichern Sie ihn im Ordner 'example'. Dies sollte funktionieren.

2
NJENGAH

Ich habe mir die Antworten hier einige Male angesehen, da ich auf ein ähnliches Problem gestoßen bin. Ich habe Dateien in einem Unterverzeichnis, die einen 404-Fehler auslösen, wenn ich versuche, auf sie zuzugreifen. Das ganze .htaccess-Zeug konnte es nicht korrigieren, wie Kirsten Douglas sagt, Wordpress erledigt den Job bereits.

Meine Lösung

Ich habe diesen Artikel gefunden, nachdem ich das error_log auf dem Server überprüft habe. Ich habe eine Nachricht über eine falsche Benutzer-ID für Skripte erhalten. Ich bemerkte auch, dass der 404 nicht wegen der Datei geworfen wurde, sondern weil der Server eine 500.html-Datei nicht bedienen konnte, d. H. Ich hatte einen 500-Fehler.

Es stellte sich heraus, dass ich Dateien als Root erstellt hatte und den Eigentümer in den Eigentümer der Webdateien ändern musste.

Ich hoffe, das hilft anderen, die das gleiche Problem hatten!

1
Dan

Sie sollten in der Lage sein, einfach eine RewriteCond-Direktive hinzuzufügen, die sicherstellt, dass die WordPress-Regeln für Anforderungen in Ihrem Unterordner ignoriert werden.

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

Sie sagen jedoch, dass Sie das Problem auch mit no WordPress .htaccess haben? Was ist der Inhalt Ihres Unterverzeichnisses .htaccess?

0
TheDeadMedic