it-swarm.com.de

Tut WP Haben Sie eine Funktion zum Generieren von .htaccess RewriteCond?

Ich weiß, dass ich .htaccess manuell bearbeiten und eine RewriteCond-Anweisung hinzufügen kann, aber ich muss ein Plugin erstellen, das dies auf die richtige Weise durch Verwendung von WP -Rewrites erledigt, die dann mit flush_rewrite_rules () in .htaccess verschoben werden. . In diesem Fall benötige ich RewriteCond.

Hat WP eine dunkle Funktion, mit der ich eine RewriteCond-Anweisung in die .htaccess-Datei schreiben kann?

2
Volomike

Kurz ja ...

'Externe' Umschreiberegeln

Wenn in add_rewrite_rule die Regel nicht an index.php gerichtet ist, wird sie als 'externe' Regel behandelt (d. H. Nicht von WordPress 'interner Übergabe von Umschreibungen verarbeitet) und stattdessen in die Datei .htaccess geschrieben. Das heißt ob:

add_rewrite_rule('^nutrition/([^/]*)/([^/]*)/?','somethingelse.php?p=12&food=$1 &variety=$2','top');

wird anstelle von verwendet

add_rewrite_rule('^nutrition/([^/]*)/([^/]*)/?','index.php?p=12&food=$matches[1]&variety=$matches[2]','top');

Dann wird die Regel als nicht (interne) WordPress-Regel erkannt und die .htaccess-Datei hinzugefügt, anstatt intern behandelt zu werden. Hinweis für 'externe' Regeln - Sie verwenden $1 anstelle von $matches[1];

Hinzufügen benutzerdefinierter Regeln zu .htaccess

Wenn Umschreiberegeln gelöscht werden, wird in die .htacess-Datei geschrieben. Es gibt einen Haken, der filtert, was tatsächlich geschrieben wird. mod_rewrite_rules

function wpse50631_htaccess( $rules ){
   //Append or preppend extra rules.
   return $rules;
}
add_filter('mod_rewrite_rules', 'wpse50631_htaccess');

Der Kodex hat folgendes zu sagen:

mod_rewrite_rules() ist die Funktion, die das von rewrite_rules () generierte Array in einen Satz von Umschreiberegeln für die .htaccess-Datei umwandelt. Diese Funktion verfügt auch über den Filter mod_rewrite_rules, der die Zeichenfolge aller Regeln übergibt, die an .htaccess geschrieben werden sollen, einschließlich des umgebenden Abschnitts <IfModule>. (Hinweis: Möglicherweise werden Plugins auch mit dem Hook rewrite_rules angezeigt, dies ist jedoch veraltet.).

6
Stephen Harris