it-swarm.com.de

Warum löscht WordPress 3.0.4 weiterhin den Inhalt der .htaccess-Datei?

Ich habe gerade WordPress 3.0.4 auf einem von GoDaddy gehosteten Server installiert. Und ich habe ein Problem mit meiner .htaccess-Datei. Aus irgendeinem Grund löscht WordPress automatisch alle mod_rewrite-Konfigurationseinstellungen in der .htaccess-Datei, wenn ich die Seite WP admin zum Festlegen von Permalinks aufrufe. Das Löschen der .htaccess-Datei beeinträchtigt den Zweck dieser Seite.

Ich konnte eine Problemumgehung erstellen, indem ich die Konfigurationen einfach manuell in die .htaccess-Datei eingab und nie die Permalink-Konfigurationsseite besuchte. Dies scheint jedoch keine gute Lösung zu sein.

Kann jemand Gedanken darüber austauschen, was dies verursachen könnte?

Vielen Dank! David

2
user2052

Hier ist noch etwas anderes los. Wordpress löscht den Inhalt der .htaccess-Datei nicht, wenn neue Permalinks geschrieben werden. Es hängt die neue Permalink-Struktur an das Ende der Datei an.

Haben Sie noch andere Codes oder Plugins, die .htaccess verwenden? Befinden Sie sich auf einem Windows-Server, der das Umschreiben von Mods nicht von Haus aus unterstützt und daher andere Möglichkeiten zum Aktivieren des Umschreibens von Mods erfordert und möglicherweise die Ursache für das Löschen ist?

Wenn Sie verhindern möchten, dass WP in die .htaccess-Datei schreibt oder an diese angehängt wird, legen Sie Permalinks fest, nehmen Sie Ihre eigenen Änderungen vor und setzen Sie die .htaccess-Berechtigungen auf 444. Anschließend können Sie die Admin-Seite für Permalinks ohne _ anzeigen.WP wird automatisch an die Datei angehängt. Das ist was ich mache.

4
markratledge

WordPress versucht immer, die .htaccess-Datei zu schreiben, wenn Sie die Seite Permalinks besuchen, auch wenn es nichts zu schreiben gibt (um sicherzustellen, dass alte Regeln nicht bleiben). Dies geschieht in save_mod_rewrite_rules() , das von $wp_rewrite->flush_rules() aufgerufen wird, wenn der Parameter $hard ist true.

Alles, was zwischen den Zeilen # BEGIN WordPress und # END WordPress steht, ist die Ausgabe von $wp_rewrite->mod_rewrite_rules() . Wenn man sich diese Funktion ansieht, gibt es nur eine begrenzte Anzahl von Fällen, in denen nichts zurückgegeben wird:

  • $wp_rewrite->using_permalinks() gibt false zurück, was der Fall ist, wenn die Permalink-Struktur leer ist (wenn Permalinks deaktiviert sind)
  • der mod_rewrite_rules oder rewrite_rules geben nichts zurück. Dies kann passieren, wenn ein Plugin glaubt, es handele sich um Aktionen und nicht um Filter, und daher vergisst, etwas zurückzugeben.

Ich würde versuchen, $wp_rewrite->mod_rewrite_rules() aufzurufen und zu sehen, was es zurückgibt.

1
Jan Fabry

Danke @Jan ... habe ein einwöchiges Problem von mir gelöst! .htaccess wurde immer wieder überschrieben (tatsächlich beschädigt und aufgebläht mit sich wiederholenden WP Einstellungen) .. dachte, es sei mein Caching-Plugin, entdeckte aber, dass es meine functions.php ist, wo ich eine benutzerdefinierte Taxonomie einrichtete und flush_rewrite_rules(); ... einstelle it to flush_rewrite_rules( false ); macht es zu einem 'soft flush' gemäß WP Codex und das löst mein htaccess Problem! Einhundert Segen für dich

0
Jooooooooe