Изменение стандартного WordPress.htaccess с помощью плагина


Я разрабатываю плагин WordPress, который изменяет стандартный файл WordPress.htaccess в папке webroot. В настоящее время я вводю свой код внутри блока # BEGIN WordPress, вот так:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# BEGIN This is my block
RewriteCond %{REQUEST_URI} \.(css|js)$
RewriteRule . index.php [L]
# END This is my block

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Является ли это лучшей практикой? Или мне следует создать новый блок <IfModule mod_rewrite.c> для этого кода?

Кроме того, есть ли что-нибудь еще, на что я должен обратить внимание при создании плагинов, которые изменяют.htaccess?

P.S. Я добавляю этот блок .htaccess, потому что хочу изменить некоторые части .css и файлы .js с PHP, прежде чем я их выведу.

Author: John Doe, 2018-06-25

1 answers

Вам определенно не следует изменять блок # BEGIN WordPress, так как это, скорее всего, будет переопределено самим WordPress.

Вы должны создать новый раздел перед фронт-контроллером WordPress. Это будет работать так же хорошо, и директивы будут разделены.

Нет необходимости использовать оболочку <IfModule mod_rewrite.c>, на самом деле вы не должны использовать оболочку в этом случае, так как ваш плагин, по-видимому, зависит от включения mod_rewrite. Ваш плагин будет не работает корректно, если mod_rewrite недоступен, поэтому вы не должны "молча завершать работу", если это не так.

В стороне: Также нет необходимости повторять директивы RewriteEngine и RewriteBase. Если вы вручную кодируете файл .htaccess, вы не будете их дублировать. Однако, если вы вводите этот код программно, то вам, вероятно, нужно - чтобы быть уверенным. (Несколько директив RewriteEngine и RewriteBase строго не поддерживаются. Последний экземпляр в любом данном контексте выигрывает и управляет всем файлом. Например, если вы разместите RewriteEngine Off в качестве самой последней директивы в файле .htaccess, то это будет Off для всего файла, несмотря на наличие более ранних директив RewriteEngine On.)

 0
Author: MrWhite, 2018-06-25 11:49:13