У WP есть функция для генерации .htaccess RewriteCond?

Я знаю, что я могу редактировать .htaccess вручную и добавить внутри RewriteCond, но мне нужно построить плагин, который делает это правильно, используя перезаписываемые WP-файлы, которые затем вставляются в .htaccess с помощью flush_rewrite_rules (). В этом случае мне нужен RewriteCond.

У WP есть некоторая неясная функция, которая позволяет мне нажимать оператор RewriteCond в .htaccess?

Solutions Collecting From Web of "У WP есть функция для генерации .htaccess RewriteCond?"

Короче да …

«Внешние» правила перезаписи

Если в add_rewrite_rule правило не направлено на index.php тогда правило рассматривается как «внешнее» правило (т. add_rewrite_rule Не обрабатываться внутренней обработкой перезаписи WordPress) и вместо этого записывается в файл .htaccess . Т.е. если:

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

используется вместо

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

Затем правило распознается как не внутреннее правило WordPress и добавляется файл .htaccess, а не обрабатывается внутренне. Примечание для «внешних» правил – вы используете $1 вместо $matches[1] ;

Добавление пользовательских правил в .htaccess

Когда правила перезаписи .htacess , .htacess файл .htacess . Существует крючок, который фильтрует то, что на самом деле написано. mod_rewrite_rules

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

В кодексе сказано следующее:

mod_rewrite_rules() – это функция, которая принимает массив, сгенерированный rewrite_rules (), и фактически превращает его в набор правил перезаписи для файла .htaccess . Эта функция также имеет фильтр mod_rewrite_rules , который передает функции строку всех правил, которые должны быть записаны в .htaccess , включая окружение <IfModule> . (Примечание: вы также можете видеть плагины, используя крюк rewrite_rules, но это устарело).