Как переопределить.htaccess с помощью новых правил без ftp или отредактировать его вручную
Я хочу, чтобы скрипт добавлял новые правила к текущему .htaccess
, и пользователю не нужно было использовать ftp или редактировать его вручную.
Пример, я использую timthumb для изменения размера изображения в моей теме и хочу переписать URL, и текущий .htaccess
будет примерно таким.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^images/thumb/(.*) timthumb.php?filename=$1
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Вопрос
Как добавить новое правило в опцию .htacces
в моей теме.
Включить перезапись модов для Timthumb?: [Да] [Нет]
Если нажать [Да]RewriteRule ^images/thumb/(.*) timthumb.php?filename=$1
будет автоматически добавлено в текущий .htaccess
Пусть я знаю
1 answers
Вы можете добавить дополнительные правила сразу после строки ^index\.php$
с помощью класса WP_Rewrite
, более конкретно метода add_external_rule()
. Они добавляются в массив non_rewrite_rules
, , который записан в методе mod_rewrite_rules()
.
Это очень простой пример. Вы все равно должны очистить правила перезаписи (один раз), либо при активации плагина, либо посетив страницу Постоянные ссылки.
add_action( 'init', 'wpse9966_init' );
function wpse9966_init()
{
global $wp_rewrite;
// The pattern is prefixed with '^'
// The substitution is prefixed with the "home root", at least a '/'
$wp_rewrite->add_external_rule( 'images/thumb/(.*)$', 'timthumb.php?filename=$1' );
}