web-dev-qa-db-ja.com

Ftpなしで.htaccessを新しいルールで上書きする、または手動で編集する方法

私は、スクリプトが現在の.htaccessに新しい規則を追加することを望み、ユーザーはそれをftpしたり手動で編集する必要がないようにします。

例えば、私はテーマのimageのサイズを変更するために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のMod書き換えを有効にしますか? : [はい・いいえ]

[はい]をクリックするとRewriteRule ^images/thumb/(.*) timthumb.php?filename=$1が自動的に現在の.htaccessに追加されます

お知らせ下さい

2
wow

^index\.php$クラス、より具体的にはadd_external_rule()メソッドを介してWP_Rewrite行の直後に追加のルールを追加できます。それらは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' );
}
4
Jan Fabry