Как добавить код .htaccess через функцию?

Мне нужно добавить следующий .htaccess код через функцию

<IfModule mod_deflate.c> # Insert filters AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php AddOutputFilterByType DEFLATE application/x-httpd-fastphp AddOutputFilterByType DEFLATE image/svg+xml # Drop problematic browsers BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary </IfModule> ## Expires Caching ## <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 2 week" ExpiresByType image/jpeg "access 2 week" ExpiresByType image/gif "access 2 week" ExpiresByType image/png "access 2 week" ExpiresByType text/css "access 2 week" ExpiresByType application/pdf "access 2 week" ExpiresByType text/x-javascript "access 2 week" ExpiresByType application/x-shockwave-flash "access 2 week" ExpiresByType image/x-icon "access 2 week" ExpiresDefault "access 2 week" </IfModule> ## Expires Caching ## 

В моих темах function.php

 function add_htaccess { //the above code to add } 

Я просто не хочу добавлять его вручную.

 /** * Inserts an array of strings into a file (.htaccess ), placing it between * BEGIN and END markers. Replaces existing marked info. Retains surrounding * data. Creates file if none exists. * * @param array|string $insertion * @return bool True on write success, false on failure. */ function add_htaccess($insertion) { $htaccess_file = ABSPATH.'.htaccess'; return insert_with_markers($htaccess_file, 'MyMarker', (array) $insertion); } 

Заметки:

  • $insertion – это массив строк. Каждая строка получает новую строку в файле.
  • Разумеется, вы должны заменить «MyMarker» своим собственным именем. Ваш контент будет вставлен в указанный контейнер, оставив остальную часть файла в покое.
  • Эта функция зависит от функции insert_with_markers() которая загружается только в области администратора. В противном случае вам придется загрузить wp-admin/includes/misc.php .
  • Для того, чтобы эта функция работала, должен быть доступен для записи .htaccess.

Просто быстрый совет – вы должны получить основную идею, посмотрев, как это делается в ядре WordPress:

Источником функций save_mod_rewrite_rules () и insert_with_markers () может быть интересно для вас.

Вы увидите, что правила записываются в файл с помощью PHP fwrite () .
Также будет полезен код, который проверяет наличие самого файла .htaccess , записываемого и т. Д.

Погубите.

PS: Могут быть фильтры, облегчающие работу, но изучение методов позади – это хорошая идея)

Действие – generate_rewrite_rules .

Проверьте эти вопросы, вы можете найти их полезными:

  • Необходимо сделать php-файл внутри темы доступным через URL-адрес
  • Создание файла плагина, доступного через url rewrite?