it-swarm.com.de

Zugriff auf Ordner auf derselben Ebene wie bei der WordPress-Installation nicht möglich

Ich habe die folgende Struktur

www/
  .htaccess
  /website1
  /website2
  /uploads/foo.pdf
  /websiteWP
    .htaccess

.htacces in root (www/.htaccess)

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{HTTP_Host} ^(www.)?foo.com$

RewriteCond %{REQUEST_URI} !^/website1/
RewriteCond %{REQUEST_URI} !^/website2/
RewriteCond %{REQUEST_URI} !^/uploads/
RewriteCond %{REQUEST_URI} !^/websiteWP/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /websiteWP/$1

RewriteCond %{HTTP_Host} ^(www.)?foo.com$
RewriteRule ^(/)?$ websiteWP/index.php [L] 
</IfModule>

.htacces in der WordPress-Installation (www/websiteWP/.htaccess)

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

Wenn Sie in WordPress auf den Link https://www.foo.com/uploads/some-pdf.pdf klicken, wird eine unendliche Ladeseite angezeigt. versuchen, Inhalt zu laden (diese Reaktion ist auf das Thema zurückzuführen, ich nehme an, andere können einen 404 haben) oder manchmal halb WordPress mit halb "eingebetteter" Remote-Seite kombinieren.

Das Aufrufen des PDF-Dokuments von außerhalb der Website (Einfügen in das Suchfeld) funktioniert jedoch.

Hinweis:

Wordpress-URL: https://www.foo.com/websiteWP

URL der Website: https://www.foo.com

Kann den Fehler des .htaccess nicht finden.

Bereits alle verfügbaren Threads in Stackoverflow und WordPress StackExchange überprüft.

1
Qu4k3

Aus den .htaccess-Dateien, die Sie gepostet haben, ist nicht ersichtlich, warum Sie nicht auf Dateien/Ordner außerhalb Ihrer WordPress-Installation zugreifen können (innerhalb des /websiteWP-Unterverzeichnisses). Tatsächlich sollten Sie keine bestimmten Ausnahmen hinzufügen müssen, um auf physische Dateien zuzugreifen, da diese Anweisungen nicht für physische Dateien gelten sollten.

Ihre .htaccess -Dateien sind jedoch falsch konfiguriert ...

Wenn sich die WordPress-Installation im Verzeichnis /websiteWP befindet, ist die Datei /websiteWP/.htaccess (in der Route Ihrer WordPress-Installation) falsch, da alle Anforderungen an /index.php weitergeleitet werden - das ist die Datei index.php im Dokumentenstamm (von der ich annehme, dass sie das übergeordnete Verzeichnis ist). , nicht der WordPress-Front-Controller, der sich im selben Verzeichnis befinden sollte, dh. /websiteWP/index.php).

Ich gehe jedoch davon aus, dass /index.php (im Dokumentenstamm) nicht existiert (ansonsten funktioniert Ihre WordPress-Site nicht). Die .htaccess Direktiven in der root .htaccess Datei schreiben dann die Anfrage zurück zum /websiteWP/index.php WordPress Front-Controller! Dies ist zusätzliche Arbeit und unnötig.

Sie sollten die /websiteWP/.htaccess-Datei folgendermaßen ändern:

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

Hinweis Ich habe die Direktive RewriteBase entfernt und das Schrägstrich-Präfix für die Susbstitution RewriteRule entfernt, indem ich /index.php (root-relative) in index.php (relative) geändert habe.

In diesem Fall ist die Root-Datei .htaccess überhaupt nicht erforderlich.

0
MrWhite