mod_rewrite_rules хук-фильтр . WP 1.5.0
Позволяет изменить/добавить любые правила в файл .htaccess.
Например с помощью этого хука можно:
- Изменить имеющиеся правила для создания ЧПУ (перезаписи URL).
- Добавить свои правила редиректов или перезаписи URL.
- Создать правило на 301 редирект с http на https.
- Добавить любые другие строки в файл .htaccess.
Добавляются правила в htaccess с помощью функции insert_with_markers()
Использование
add_filter( 'mod_rewrite_rules', 'filter_function_name_3358' ); function filter_function_name_3358( $rules ){ // Изменяем... return $rules; }
- $rules(строка)
- Список имеющихся на данный момент правил перезаписи для файла .htaccess.
Примеры
#1 Дополним .htaccess правилами редиректа с HTTP на HTTPS
Код из плагина Mihdan: HTTP To HTTPS Via Htaccess.
add_filter( 'mod_rewrite_rules', function ( $rules ) { $https = "\n"; $https .= "# Редирект с HTTP на HTTPS.\n"; $https .= "<IfModule mod_rewrite.c>\n"; $https .= "RewriteEngine On\n"; $https .= "RewriteCond %{HTTPS} off\n"; $https .= "RewriteCond %{HTTP:X-Forwarded-Proto} !https\n"; $https .= "RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\n"; $https .= "</IfModule>\n"; $https .= "\n"; return $https . $rules; } );
Получим в htaccess:
Чтобы код сработал, нужно сбросить правила ЧПУ (просто зайти на страницу админки Постоянные ссылки).
Список изменений
С версии 1.5.0 | Введена. |
Где вызывается хук
mod_rewrite_rules
wp-includes/class-wp-rewrite.php 1559
$rules = apply_filters( 'mod_rewrite_rules', $rules );