Fügen Sie diese Zeile hinzu, um zu verhindern, dass der Unterordner in der URL angezeigt wird

Fügen Sie diese Zeile hinzu, um zu verhindern, dass der Unterordner in der URL angezeigt wird

Ich habe ein Setup, bei dem sich eine statische Website im Stammordner befindet und Wordpress in einem Unterordner. Daher muss ich alle Anfragen an index.html umschreiben, während alle Wordpress-bezogenen Anfragen an den Unterordner gehen sollten. Dies erreiche ich mithilfe von zwei .htaccess-Dateien: eine im Stammordner und eine weitere im Wordpress-Unterordner.

Stamm-.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-.+
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteRule (wp-.*)$ /wordpress/$1 [L]
# Rewrite rule for frontend
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

Wordpress-Unterordner .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

Dies funktioniert, aber beim Versuch, es zu öffnen, /wp-admin/werde ich umgeleitet, /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwordpress%2Fwp-admin%2F&reauth=1sodass der Unterordner in der URL angezeigt wird.

Gibt es eine Möglichkeit, den Unterordner auszublenden?

Antwort1

Um den Unterordner in der URL für WordPress-bezogene Anfragen auszublenden, können Sie Ihr Setup leicht ändern. Sie können die Stammdatei .htaccess so lassen, wie sie ist, aber einige Änderungen an der .htaccess-Datei im WordPress-Unterordner vornehmen. So können Sie es tun:

  1. Ändern Sie die .htaccess-Datei im WordPress-Unterordner ( e.g.,/wordpress/) wie folgt:
RewriteEngine auf RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L]

Fügen Sie diese Zeile hinzu, um zu verhindern, dass der Unterordner in der URL angezeigt wird

RewriteCond %{REQUEST_URI} !^/wordpress/

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L]

Durch Hinzufügen der Bedingung RewriteCond %{REQUEST_URI} !^/wordpress/ stellen Sie sicher, dass Anforderungen an den Ordner /wp-admin/ von dieser Umschreiberegel nicht betroffen sind und der Unterordner daher in der URL für WordPress-bezogene Anforderungen nicht angezeigt wird.

  1. In Ihrer Stammdatei .htaccess können Sie die Regeln zum Umschreiben wie folgt vereinfachen index.html:

    RewriteEngine aktiviert

    Anfragen an den Unterordner /wordpress/ von dieser Regel ausschließen

    RewriteCond %{REQUEST_URI} !^/wordpress/

    Umschreiberegel für das Frontend

    RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L]

Mit diesen Änderungen werden WordPress-bezogene Anfragen weiterhin vom WordPress-Unterordner verarbeitet und der Unterordner wird beim Zugriff auf /wp-admin/ nicht in der URL angezeigt. Andere Anfragen werden wie zuvor in index.html im Stammordner umgeschrieben.

verwandte Informationen