Meine .htaccess
-Dateien fangen die .htaccess
-Datei von WordPress ab.
Welche Module und welche Einstellungen (angegeben durch .htaccess
) sind erforderlich, damit WordPress funktioniert? Mit anderen Worten, wo finde ich die Standard .htaccess
Datei von WordPress?
Hier ist der Standardcode für diese Datei.
# 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
sie können es hier für Standard-Htaccess-Datei überprüfen.
http://codex.wordpress.org/Using_Permalinks .
Vielen Dank. Ich hoffe es hilft wenig.
WordPress enthält keinen .htaccess
in Dateiform.
Die Regeln werden von save_mod_rewrite_rules()
function in eine Datei geschrieben und von $wp_rewrite->mod_rewrite_rules()
generiert.
Beachten Sie, dass die Installation an mehreren Standorten andere (komplexere) Regeln hat und offenbar anders gehandhabt wird.
Die Standardeinstellung .htaccess sollte unterhttps://codex.wordpress.org/htaccessangezeigt werden.
Verwenden Sie die #wordpress von Freenode, um die entsprechende Dokumentation zu finden, normalerweise im /topic
. Dort fand ich den Schlüssel Class WP_Rewrite
hier , das offizielle wordpress.org ist im besten Fall irreführend und vermarktend. Mischen Sie auf keinen Fall die Umschreiberegeln von Apache mit den Umschreiberegeln von WP, obwohl die Benennung von WP wahrscheinlich der von Apache entspricht.
Die WP_Rewrite-API gibt an
Mit dieser Komponente können Sie Regeln hinzufügen, um die Seitenanzeige und -verarbeitung auszulösen. Die volle Funktionalität eines Front-Controllers ist nicht vorhanden, dh Sie können nicht definieren, wie die Vorlagendateien basierend auf den Umschreiberegeln geladen werden.
sie müssen also die API verwenden, um die Änderungen vorzunehmen. Sie sind sich nicht sicher, was dies bedeutet. Ich denke jedoch, dass Sie Ihren fest codierten .htaccess -Dateien nicht vertrauen können - die Dinge können sich sogar bei verschiedenen WD-Versionen ändern! Verwenden Sie also die API.
abfangen
Der Code hier hat einige Bedingungen, wenn die .htaccess -Datei existiert - nicht 100% ihrer Schlussfolgerungen, weil nicht gut dokumentiert und kann die Benennung dort nicht verstehen, aber die zentrale Nachricht ist wahrscheinlich, dass der sichere Weg, um das Neuschreiben beizubehalten Regeln ist die Verwendung der WP_Rewrite-API, WP kann sich in Zukunft ändern.
Zum Beispiel ist ein einfaches Apache-Rewrite RewriteRule ^hello$ Layouts/hello.html [NC,L]
anscheinend so ähnlich wie add_rewrite("^hello$", "Layouts/hello.html")
. Es wurde nicht getestet, aber es wurde versucht, die folgende API zu befolgen:
add_rewrite_rule (line 19)
Add a straight rewrite rule.
see: WP_Rewrite::add_rule() for long description.
since: 2.1.0
void add_rewrite_rule (string $regex, string $redirect, [string $after = 'bottom'])
string $regex: Regular Expression to match request against.
string $redirect: Page to redirect to.
string $after: Optional, default is 'bottom'. Where to add rule, can also be 'top'.
Verwandte
http://pmg.co/a-fast-complete-guide-to-the-wordpress-rewrite-api
Vielen Dank an toscho für die Unterstützung von hier , etwas Smalltalk im Chat.