web-dev-qa-db-de.com

Wordpress .htaccess-Unterverzeichnis Problem

Bei der Installation von Wordpress sind einige Probleme aufgetreten, die mir den Zugriff auf Unterverzeichnisse ermöglichen, insbesondere eine CodeIgniter-Installation unter mydomain.com/codeigniter. Ich weiß, dass es technisch einwandfrei funktionieren sollte und Ordner erkennen, wie sie erstellt werden. Dies geschieht jedoch nicht. Ich vermute, es hat etwas mit einem Plugin zu tun, aber ich habe versucht, alle zu deaktivieren, und das Problem tritt immer noch auf (verweist mich auf die Wordpress 404-Seite).

In der Zwischenzeit habe ich jedoch eine Lösung gefunden. Wenn ich eine Subdomain erstelle, ändert sich etwas und alles funktioniert wie es sollte. Der Zugriff auf den Ordner erfolgt sowohl über den direkten Pfad als auch über den Namen der Subdomain.

Irgendeine Hilfe? Ich habe alle möglichen lustigen Dinge mit meinen .htaccess-Dateien in beiden Verzeichnissen ausprobiert, aber das Ändern bringt nichts.

Update: Hier ist das Wordpress .htaccess im Root-Ordner:

DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?codeigniter/
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Und die CodeIgniter .htaccess-Datei im Unterverzeichnis/codeigniter /.

DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /codeigniter
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>
4
Jeff Wain

Auch wenn statische Dateien und Verzeichnisse bei einer WordPress-Installation mit mod_rewrite im Stammverzeichnis des Servers funktionieren, müssen Sie möglicherweise Ihr CodeIgniter-Unterverzeichnis von dieser mod_rewrite-Aufstellung ausschließen.

Sie können dies tun, indem Sie eine zusätzliche .htaccess-Datei in das CodeIgniter-Verzeichnis einfügen und dort mod_rewrite deaktivieren:

<IfModule mod_rewrite.c> 
RewriteEngine off
</IfModule>

Verwandte: Apache - Deaktiviere mod_rewrite für Unterverzeichnis

Das erledigt normalerweise die Arbeit für mich. Es kann jedoch weniger trivial sein, wenn das Unterverzeichnis eine eigene mod_rewrite-Konfiguration benötigt (wie es einige PHP Frameworks benötigen).

Um zu verstehen, wie die Apache-Konfiguration funktioniert, lesen Sie bitte Konfigurationsdateien (Apache Manual) und AllowOverride-Direktive (Apache Manual) .

3
hakre