it-swarm.com.de

Warum funktionieren Permalinks mit /index.php/%postname%, aber nicht nur mit% postname%?

Ich habe ein Problem mit Wordpress-Permalinks. Ich ändere die Permalinks in hübsche Permalinks, aber ich bekomme gerade 404s für die Seiten. Das Seltsame ist, wenn ich /index.php/%postname% verwende, funktionieren die Seitenlinks einwandfrei, aber ich muss den index.php-Teil entfernen.

Ich habe gelesen, wie man Änderungen an der Datei httpd.conf vornimmt, kann die Datei aber nirgendwo finden. Die htaccess-Datei ist korrekt, soweit ich das herausfinden kann. Sie ist unten aufgeführt

# 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

Irgendwelche anderen Ideen?

Danke Emma

3
emmahiggy

Ich hatte den gesamten korrekten Code in der .htaccess-Datei, aber er wurde auch in der Ubuntu-Standard-/etc/Apache2/Apache2.conf-Datei vollständig überschrieben. Der Eintrag für / und /var/www wurde von AllowOverride None in AllowOverride All geändert, Apache wurde neu gestartet und jetzt funktioniert alles einwandfrei.

8
Drew Reis

Ich vermute, dass mod_rewrite nicht aktiviert ist. Aktivieren Sie je nach verwendetem Server mod_rewrite.

Wenn Sie unter Linux arbeiten, bearbeiten Sie den /etc/Apache2/sites-enabled/000-default manuell und ändern Sie die AllowOverride von None in All (oder wo sich das Verzeichnis Ihrer Site befindet).

Hier , an den Punkten 3 und 4 sollten Lösungen für Windows sein.

4
iulia

Ich habe eine Weile mit diesem Problem gekämpft und heute habe ich dieses Problem gelöst. Ich habe herausgefunden, dass mein mod_rewrite die ganze Zeit nicht aktiviert war. Ich fand die Informationen auf diesem Link sehr nützlich. Hier erfahren Sie, wie Sie überprüfen, ob der mod_rewrite aktiviert ist, und wenn nicht, wie Sie ihn aktivieren. Ich hoffe, diese Informationen sind nützlich für alle, die WP noch nicht kennen und Schwierigkeiten haben, hübsche Permalinks zu setzen.

1
Rohit Sharma

Ich arbeite seit gestern an einem ähnlichen Problem und habe endlich meine Lösung gefunden.

1) Stellen Sie sicher, dass Ihr .htaccess die Berechtigung 666 hat

2) Aktiviere das mod_rewrite:

Sudo a2enmod umschreiben

3) Starten Sie Apache neu:

Sudo Systemctl Apache2 neu starten

4) AllowOverride All für das öffentliche Verzeichnis in /etc/Apache2/Apache2.conf

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

5) Starten Sie Apache neu:

Sudo Systemctl Apache2 neu starten

6) Gehen Sie zum Wordpress-Dashboard und ändern Sie die Einstellungen für den Permalink (wenn Sie einen Postnamen haben, wechseln Sie zu "Normal" oder umgekehrt). Zeigen Sie die zu überprüfende Site an.

7) Gehen Sie erneut zum Dashboard und ändern Sie die Permalink-Einstellungen auf die gewünschten Einstellungen.

8) Stellen Sie die .htaccess-Einstellungen auf 644 zurück

Das hat bei mir funktioniert.

1
ktiwari

Verwenden Sie Names.co.uk zufällig als Ihren Gastgeber?

Ich hatte gerade das gleiche Problem wie Sie und nach ein paar Stunden Googeln stellte ich fest, dass sie einen Zeus Server - nicht Apache - verwenden und es nicht unterstützen die Mod_ReWrite Funktion. Dies scheint die verwirrenden Symptome zu erklären. (Ich hatte keine .htaccess-Datei - aber keine Fehlermeldungen von Wordpress, wenn ich meine Permalink-Einstellungen änderte.)

Sie haben eine Problemumgehung für Zeus, die hier beschrieben wird:

http://www.names.co.uk/support/hosting/linux_hosting/1119-wordpress_rewrite_script.html

Mir ist klar, dass dies ein paar Monate nach Ihrem ursprünglichen Post ist und Sie es wahrscheinlich inzwischen gelöst haben - aber für alle, die dies in Zukunft finden, wäre es eine gute Idee zu prüfen, ob Ihr Host Zeus oder ein anderes verwendet Nicht-Apache-Server.

Update: Bitte lesen Sie den Code, den ich hier gepostet habe bei einer ähnlichen Frage

1
Mike Cooter

Versuchen Sie, den .htaccess-Code durch Folgendes zu ersetzen:

# -------------------------------------------------------------------------
# Rewrite Engine options
# -------------------------------------------------------------------------

RewriteEngine On
RewriteCompatibility2 On
RepeatLimit 200
RewriteBase
RewriteRule ^/index.php$ / [NC,P,R=301]
RewriteCond %{REQUEST_URI} !/wp-admin
RewriteRule ^/(.*)/$ /index.php/$1 [NC]

# Redirect 'www.yourblogsite.com/anything/anything/index.php'
# to 'www.yourblogsite.com/anything/anything/'

RewriteRule ^/(.*)/index.php$ /$1/ [NC,P,R=301]

# -------------------------------------------------------------------------
# END REWRITES
# -------------------------------------------------------------------------

Ich hatte immer noch die Anmeldeinformationen für einen Client, für den ich das Problem beheben musste. Das habe ich für ihn benutzt. Es ist ein IIS Server, ich bin nicht sicher, ob das wichtig ist, aber Sie können es versuchen. Viel Glück, JJ

0
Jeremy Jared

Ich weiß, es ist zu spät, um jetzt zu antworten, aber wenn Sie noch danach suchen; Hier ist ein schneller Weg dazu:

Gelöst - Wie Index.php von WordPress URL auf IIS7 entfernen?

0
ansh

Ich denke, Ihr Host verwendet ISS. ISS verwendet "URL Rewrite" nicht "mod_rewrite", schauen Sie sich also den Codex an.

"Hübsche" Permalinks erfordern normalerweise mod_rewrite und IIS (auf Windows-Servern üblich) unterstützt mod_rewrite nicht. (Wenn Sie Apache 2.0.54 verwenden, funktioniert mod_rewrite unter Windows möglicherweise, sofern es in Apache\conf\httpd.conf aktiviert ist.)

0
ewroman

Sie müssen Sudo a2enmod umschreiben, um das Umschreiben des Moduls zu aktivieren

0

Ich hatte dieses Problem unter Mac OS X und das Folgende war sehr nützlich. Standardmäßig sind Macs nicht auf .htaccess vorbereitet, und Apache ignoriert die Datei, bis bestimmte Dateien (die unter den folgenden Links angegeben sind) geändert wurden:

http://wordpress.org/support/topic/getting-pretty-permalinks-working-on-a-mac-105-server

http://clagnut.com/blog/350/

Hoffentlich hilft das!

0
July

Dies ist für Apache-Server: Hi First Überprüfen Sie Ihren virtuellen Host, wenn Sie Standard verwenden, überprüfen Sie, ob das WordPress-Stammverzeichnis dies enthält

  <Directory ROOT_DIR_FOR_WORDPRESS>
            php_admin_flag engine on
            AllowOverride All
            Order allow,deny
            allow from all
            RewriteEngine On
            RewriteOptions Inherit
            Require all granted
    </Directory>

überprüfen Sie Ihre .htaccess-Datei in WordPress Root hat die Berechtigung zum Lesen, Schreiben (666) und enthält

# 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

Enable mod rewrite (Sudo a2enmod rewrite - für Linux Benutzer)

Aktualisieren Sie nun die benutzerdefinierte Permalink-Struktur: /% postname% /

speichern und auf fehler prüfen Jetzt sollte es funktionieren

Meistens wird Ihr .htaccess durch die Regeln Ihres virtuellen Hosts überschrieben

0
User123456

Stellen Sie den htaccess auf 777 ein, und aktualisieren Sie die Permalink-Einstellungen auf die gewünschten Werte. Wenn dies funktioniert, ändern Sie ihn wieder auf 644

0
derek

Nachdem ich meinen Inhalt hinzugefügt habe, habe ich einen Artikel gefunden, der das Löschen der .htaccess-Datei vorschlug. Gehe dann zu Einstellungen/Permalinks und entferne die index.php. In dem Artikel heißt es, WorPress würde einen Fehler melden, der darauf hindeutet, dass Sie die .htaccess-Datei erstellen. Ich habe beschlossen, es zu versuchen, aber es hat nichts getan. Was ich herausgefunden habe ist, dass meine Permalinks immer noch mit der gelöschten .htaccess-Datei arbeiten. Das hat mich zuerst verwirrt. Ich habe meinen FTP-Client geöffnet und zu meinen Dateien navigiert. Mir ist aufgefallen, dass sich dort eine .htaccess-Datei befindet, nachdem ich sie gelöscht habe. Ich weiß nicht, ob es WordPress ist, mein Hosting-Konto oder was genau es erstellt hat, aber ich weiß, dass dies neu ist. Das ist vorher nicht passiert. Sie können diese Methode ausprobieren, wenn alles andere fehlschlägt.

Ich konnte das Problem in Ihrer Frage nicht neu erstellen, daher bin ich mir nicht 100% sicher, ob es bei Ihnen funktioniert. Es ist jedoch einen Versuch wert.

grüße, Jeremy Jared

0
Jeremy Jared