2013-10-16 22 views
24

ich die Permalink-Struktur aktualisiert /% post%/und das mit meinem .htaccess aktualisiert:Wordpress Permalinks nicht funktioniert - .htaccess scheint ok, aber immer 404 Fehler auf Seiten

# 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 

Aber ich bekomme immer noch 404-Fehler auf die Seiten. Gibt es noch andere Einstellungen, die ich ändern muss?

Edit: Wenn es hilft, scheint das Apache-Log direkt in den permalinked 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/ 
+0

Vielleicht sollten Sie eine Antwort akzeptieren. – Greeso

Antwort

24

Dies ist jetzt gelöst. Ich hatte mod_rewrite nicht aktiviert. Also tat ich dies:

$ 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                    
+0

Was für eine coole Sache. :) – Awijeet

+0

Tatsächlich löste das mein Problem. Ich dachte, das AllowOverride war das Problem. – Stephan

+0

Vielen Dank ...Ich habe die gleiche Sache verpasst :) :) – kinshuk4

4

Verwendung unter .htaccess-Code, nur setzen Sie Ihren Projektnamen (die im www-Verzeichnis) in folgendem Code

# 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 

Dank

+0

großartige ans. Es funktioniert für mich. Danke @krunal – Faisal

56

Für andere Menschen Landung auf dieser Seite - Ein anderes Problem könnte sein (Wenn Sie Apache als Webserver verwenden) ist 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 nach Ihrem Web-Verzeichnis in der Datei - es wird in der Masse der Conf-Datei oder getrennt in einem VirtualHost Abschnitt sein.

<Directory /path/to/site> 
    #add the following setting to allow .htaccess in your web dir to work 
    AllowOverride FileInfo 

    #other settings --- 

</Directory> 

Damit können Sie WordPress URLs, wie Sie wollen, in WordPress einrichten.

*** bearbeitet - Danke nietonfir Für Update. Verwenden Sie zunächst die geringste Anzahl von Privilegien. Wenn dies nicht funktioniert, ersetzen Sie AllowOverride FileInfo durch AllowOverride All

+4

Dies ist teilweise korrekt. 'AllowOverride FileInfo' reicht normalerweise aus, siehe [Apache-Dokumentation] (https://httpd.apache.org/docs/current/mod/core.html#allowoverride). Sie sollten immer nach dem Prinzip des geringsten Privilegs streben. – nietonfir

+0

Danke MTLHD777, es funktionierte perfekt für mich :) –

+0

DANKE MTLHD777 - das hat mir auch geholfen. – gillarf

23

Es kann mehrere Dinge geben, die verhindern, dass die Rewrite-Regel funktioniert. Mein Ubuntu-Server benötigte 3 Änderungen, um Permalinks zum Laufen zu bringen.

In neueren Versionen von apache2, müssen Sie das Modul aktivieren:

sudo a2enmod rewrite 
sudo service apache2 restart 

Sie auch die apache2.conf Datei ändern müssen können.

sudo nano /etc/apache2/apache2.conf 

Ändern Sie Ihre Web-Verzeichnis überschreiben Regel 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 dem Webserver gehören oder vom Webserver les- und änderbar sein.

Dies kann durch Ändern des Besitzers in www-data (normalerweise der Webserver-Benutzer) oder Ändern der Berechtigungen erreicht werden.

sudo chown www-data /var/www/wordpress-install/.htaccess 

ODER

sudo chmod 664 /var/www/wordpress-install/.htaccess 

Login Backend Wordpress admin und den Permalink Einstellungen speichern, und sie sollten hoffentlich arbeiten.

+0

Requisiten für die sehr vollständige Antwort! –

+0

Musste die Verrücktheit dokumentieren, die ich nur für mein zukünftiges Selbst durchging! – gan

+1

In meinem Fall war die 'AllowOverride All'-Klausel, die fehlgeschlagen ist –

0

Wenn Sie Einrichtung eines neuen oder geklonten Website auf Ubuntu, erinnere mich an die Website-Konfigurationsdatei zum Beispiel durch einen Symlink /etc/apache2/sites-available/your-file.conf in den Ordner /etc/apache2/sites-enabled so Apache lädt es.


Führen Sie einfach: sudo a2ensite your-file.conf, dann sudo service apache2 reload.

sudo a2dissite your-file.conf Symlink entfernen, d. H. Config.

0

Ich war mit dem gleichen Problem konfrontiert und hatte noch eine Sache zu suchen. Hier

ist, was Sie tun müssen, um für Wordpress Permalinks richtig funktionieren:

  1. Achten Sie darauf, die richtigen Berechtigungsarten für Dateien und Ordner in Ihrem Wordpress-Verzeichnis haben:
    sudo find . -type f -exec chmod 644 {} +
    sudo find . -type d -exec chmod 755 {} +

  2. Für Permalink-Struktur sicherstellen, dass mode_rewrite in Apache aktiviert ist:
    sudo a2enmod rewrite
    sudo service apache2 restart

0

Benutzer von WAMP (Windows): Einige Versionen von WAMP (? Alle Versionen) nicht aktivieren mod_rewrite oder Genehmigung symbolischen Links standardmäßig. Um die erforderliche Funktionalität zu aktivieren, navigieren Sie zu apache/conf/httpd.conf file, öffnen Sie mit einem Texteditor und entfernen Sie die Kommentarzeichen für die Zeile LoadModule rewrite_module modules/mod_rewrite .so (d. H. Löschen Sie das Rautezeichen am Anfang der Zeile). Weiter unten in der gleichen Datei befindet sich ein Abschnitt, der mit der Zeile "Optionen FollowSymlinks" beginnt. Ändern Sie die zweite Zeile in diesem Abschnitt von "AllowOverride none" zu AllowOverride all. Speichern Sie die bearbeitete httpd.conf und starten Sie alle WAMP-Module neu. Deine Permalinks sollten jetzt funktionieren.

For more details, Fixing Permalink Problems

0

Noch eine weitere Möglichkeit: der Apache welche immer vermasselt Configakte ich meine macOS gerade aktualisiert. Unter anderem musste ich auch das mod_rewrite Modul wieder aktivieren. Suchen Sie die Zeile, die sagt:

#LoadModule rewrite_module libexec/apache2/mod_rewrite.so 

und der Hash entfernen, so heißt es,

LoadModule rewrite_module libexec/apache2/mod_rewrite.so 
Verwandte Themen