Ich habe die Permalink-Struktur auf /% postname%/aktualisiert und dies .htaccess wurde aktualisiert mit:
# 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
Ich bekomme aber immer noch 404 Fehler auf den Seiten. Gibt es andere Einstellungen, die ich ändern muss?
Edit: Wenn es hilft, scheint das Apache-Protokoll direkt im Permalink-Ordner zu suchen. I.e .:
[Wed Oct 16 11:12:32 2013] [error] [client xx.xx.xx.xxx] File does not exist: /var/www/exampledomain/news, referer: http://exampledomain.com/
Für andere Personen, die auf dieser Seite landen - Ein anderes Problem könnte sein (wenn Sie Apache als Webserver verwenden), Ihre httpd.conf oder Ihre sites-available/sitename.conf-Datei muss bearbeitet werden.
Ihr Webverzeichnis muss der .htaccess-Datei erlauben, ihre Einstellungen zu überschreiben.
suchen Sie in der Datei nach Ihrem Webverzeichnis - es wird in der Masse der conf-Datei gespeichert oder in einen VirtualHost-Abschnitt unterteilt.
<Directory /path/to/site>
#add the following setting to allow .htaccess in your web dir to work
AllowOverride FileInfo
#other settings ---
</Directory>
Auf diese Weise können Sie WordPress-URLs beliebig in WordPress einrichten.
*** bearbeitet - Danke nietonfir Für das Update. Verwenden Sie zunächst die geringste Berechtigung. Wenn dies nicht funktioniert, ersetzen Sie AllowOverride FileInfo
durch AllowOverride All
.
Es kann mehrere Dinge geben, die verhindern, dass die Umschreibungsregel funktioniert. Mein Ubuntu-Server brauchte 3 Dinge, um Permalinks zum Laufen zu bringen.
In neueren Versionen von Apache2 müssen Sie das Modul aktivieren:
Sudo a2enmod rewrite
Sudo service Apache2 restart
Möglicherweise müssen Sie auch die Datei Apache2.conf ändern.
Sudo nano /etc/Apache2/Apache2.conf
Ändern Sie Ihre Webverzeichnis-Überschreibungsregel in AllowOverride All .
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Starten Sie danach den Dienst erneut.
Die .htaccess-Datei im WordPress-Installationsverzeichnis muss im Besitz des Webservers sein oder lesbar/modifizierbar sein.
Dies kann durch Ändern des Eigentümers in www-data (in der Regel der Webserver-Benutzer) oder durch Ändern der Berechtigungen erfolgen.
Sudo chown www-data /var/www/wordpress-install/.htaccess
OR
Sudo chmod 664 /var/www/wordpress-install/.htaccess
Melden Sie sich bei Ihrem Wordpress-Admin-Backend an und speichern Sie die Permalink-Einstellungen. Sie sollten hoffentlich funktionieren.
Das ist jetzt gelöst. Ich hatte mod_rewrite nicht aktiviert. Also habe ich das gemacht:
$ Sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
service Apache2 restart
$ service Apache2 restart
* Restarting web server Apache2
verwenden Sie unten den .htaccess-Code. Geben Sie einfach Ihren Projektnamen (der sich im Verzeichnis www befindet) den folgenden Code ein
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /project_name/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /project_name/index.php [L]
</IfModule>
# END WordPress
Vielen Dank
Sie möchten Apache anweisen, Ihrer .htaccess-Datei zu folgen. Sie können dies tun, indem Sie die Apache.conf-Datei bearbeiten
$Sudo nano /etc/Apache2/Apache.conf
Blättern Sie nach unten zur Zeile Standardmäßig wird Folgendes angezeigt:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Ändern Sie den Wert von AllowOverride in All. Jetzt wird es zu:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Drücken Sie Strg + x und drücken Sie y, um die Konfigurationsdatei zu speichern. Um diese Änderungen am Server vorzunehmen, aktivieren Sie zunächst die mod_rewrite mit.
$ Sudo a2enmod rewrite
Und dann den Server neu starten
$ Sudo service Apache2 restart
Erledigt!
Quelle: https://www.wst.space/riddling-with-wordpress-permalink-setup-issues/
Noch etwas zu prüfen, ob dies Ihr Problem beschreibt:
Stellen Sie sicher, dass sich im selben Ordner wie Ihre Wordpress-Installation keine .php-Dateien oder -Verzeichnisse befinden, deren Namen mit einem Wordpress-Permalink übereinstimmen.
Wenn Sie beispielsweise die folgenden Wordpress-Seitenpermalinks haben:
example.com/name_one/
example.com/name_two/
das Verzeichnis, in dem sich Ihre Wordpress-Installation befindet, enthält die folgende Datei:
name_one.php
dann wird dies das Ergebnis sein:
Noch wichtiger ist jedoch, dass die zweite URL gibt statt 404 eine name_one.php-Funktion aus}. Dies bedeutet, dass dieses Problem schwer zu diagnostizieren ist, da es die gleichen Symptome wie eine falsch geschriebene .htaccess-Datei geben kann.
Benutzer von WAMP (Windows): Einige WAMP-Versionen (alle Versionen?) Aktivieren mod_rewrite nicht und erlauben standardmäßig nicht, SymLinks zu folgen. Um die erforderliche Funktionalität zu aktivieren, navigieren Sie zu Apache/conf/httpd.conf file
. Öffnen Sie dazu mit einem Texteditor die Kommentarzeichen der Zeile LoadModule rewrite_module modules/mod_rewrite
.so. Weiter unten in derselben Datei befindet sich ein Abschnitt, der mit der Zeile "Options FollowSymlinks" beginnt. Ändern Sie die zweite Zeile in diesem Abschnitt von "AllowOverride none
" in AllowOverride all
. Speichern Sie die bearbeitete httpd.conf und starten Sie alle WAMP-Module erneut. Ihre Permalinks sollten jetzt funktionieren.
Ich war mit dem gleichen Problem konfrontiert und hatte noch etwas zu suchen.
Was Sie tun müssen, damit Wordpress-Permalinks ordnungsgemäß funktionieren:
Stellen Sie sicher, dass Sie über die richtigen Berechtigungsmodi für Dateien und Ordner in Ihrem WordPress-Verzeichnis verfügen:Sudo find . -type f -exec chmod 644 {} +
Sudo find . -type d -exec chmod 755 {} +
Für die Permalink-Struktur stellen Sie sicher, dass mode_rewrite
in Apache aktiviert ist:Sudo a2enmod rewrite
Sudo service Apache2 restart
Noch eine andere Möglichkeit: Ich habe gerade mein macOS aktualisiert, das always die Apache-Konfigurationsdatei zusammenbricht. Unter anderem musste ich auch das mod_rewrite
-Modul erneut aktivieren. Finden Sie die Zeile, die sagt:
#LoadModule rewrite_module libexec/Apache2/mod_rewrite.so
Und entferne den Hash, so heißt es:
LoadModule rewrite_module libexec/Apache2/mod_rewrite.so
Wenn Sieauf Ubuntu eine neue oder geklonte Siteeinrichten, denken Sie daran, die Site-Konfigurationsdatei, z. /etc/Apache2/sites-available/your-file.conf
in den /etc/Apache2/sites-enabled
-Ordner, damit Apache es lädt.
Führen Sie einfach Folgendes aus: Sudo a2ensite your-file.conf
, dann Sudo service Apache2 reload
.
Sudo a2dissite your-file.conf
, um Symlink zu entfernen, d. h. die Konfiguration zu deaktivieren.