it-swarm.com.de

Rewrite-Rules funktionieren nicht auf einem vhost, alles geht auf index.php

nachdem ich die wordpress htaccess-regeln in meinem vhost eingerichtet hatte, konnte ich den wp-admin-bereich nicht betreten. Ich wurde immer auf die Startseite meiner WordPress-Instanz weitergeleitet.

Das Umschreiben selbst funktionierte auf der Hauptseite. Alle Links haben bisher funktioniert, aber der Admin-Bereich bleibt ohne Zugriff.

Verwendete Umschreiberegeln:

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

Persönlich weiß ich nicht, wo ich anfangen soll zu suchen, ich bin sogar nicht in der Lage, dieses Problem über Google zu finden, was ein bisschen selten ist - vielleicht weiß jemand hier, wo das Problem zu finden ist.

2
Sam

OK, das anfängliche Problem war also: How to get the Rewrite Rule working at a VHOST Environment und die Antwort - falls nicht bekannt - war etwas knifflig. RewriteBase funktioniert nicht auf einem VHOST. Die Lösung besteht darin, all das Rewrite-Zeug in einem Verzeichnisabschnitt wie folgt abzulegen:

<VirtualHost *:80>
  ServerName www.mydomain.tld
  ...more config stuff...

  <Directory "/var/www/mydomain">
    RewriteEngine On
    RewriteBase /

    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
  </Directory>
</VirtualHost>

Dann klappt es. Ich werde den Fragentitel aktualisieren, um in Zukunft bessere Google-Ergebnisse zu erzielen. Hoffe, dies kann jedem helfen, der in die gleichen Schwierigkeiten gerät.

2
Sam

Ich bin mir nicht sicher, ob dies hilft, aber es hat sich bewährt. Fügen Sie die BEGIN- und END-WordPress-Kommentare zu Ihren Regeln sowie die Überprüfung auf mod_rewrite hinzu:

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

Ebenfalls:

  • Wenden Sie diese Regeln erst an, wenn Sie Permalinks im Admin-Bereich ausgewählt und gespeichert haben. Richten Sie anschließend die .htaccess-Datei ein
  • Die Kommentare werden von Plugins verwendet, um das erneute Schreiben der htaccess-Datei zu ermöglichen, ohne die wichtigsten WordPress-Regeln zu durcheinander zu bringen
  • Stellen Sie sicher, dass Ihre Rewrite Base korrekt eingestellt ist
1
Tom J Nowell

In meiner vhost-Konfiguration verwende ich Folgendes. Hiermit können Sie die .htaccess-Datei in Ihrem Projektverzeichnis verwenden:

<Directory "YOUR-PROJECT-PATH">
    Options FollowSymLinks Includes ExecCGI
    AllowOverride All
    DirectoryIndex index.html index.htm index.php
</Directory>
0
kennyevo