- 実践 WordPress ホーム
- 開発者向け
- WP-CLI
WP-CLI の wp rewrite flush --hard
を実行しても .htaccess
ファイルが更新されない問題
WordPress のコマンドラインツール WP-CLI は中〜上級者が WordPress サイトを効率的に管理するのに有用なツールです。
ここでは WP-CLI で「 wp rewrite flush --hard
コマンドを実行しても .htaccess
ファイルが更新されない問題」について説明します。
確認時のバージョン
- WP-CLI
2.10.0
wp rewrite flush --hard
コマンドとは?
wp rewrite flush --hard
コマンドは WordPress のリライトルールをリセットし、その変更を .htaccess
ファイルに反映させるものです。
--hard
オプションは .htaccess
の書き換えを行うことを意味します。
発生する問題
wp rewrite flush --hard
コマンドを実行しても .htaccess
ファイルが更新されません。
原因と解決策
さまざまな原因が考えられます。
A. WP-CLI の設定の不足
コマンド実行時に次のような出力がされる場合は WP-CLI の設定が不足していることが原因です。
これを解消するには WP-CLI の設定( wp-cli.yml
など)で apache_modules
に mode_rewrite
を追加する必要があります。
wp-cli.yml
:
このことは 公式リファレンス でも説明されています。
To regenerate a
.htaccess
file with WP-CLI, you’ll need to add the mod_rewrite module to yourwp-cli.yml
orconfig.yml
. For example:
WP-CLI の設定ファイル wp-cli.yml
についてはいくつかの設置パス・ファイル名のパターンが可能です。
詳しくは公式のリファレンスを確認してください。
B. .htaccess
ファイルに書き込み権限が無い
コマンド実行時に次のような成功メッセージが表示されるのに .htaccess
ファイルが更新されない場合もあります。
この場合はいくつかの原因が考えられます。
まず考えられるのは .htaccess
ファイルに書き込み権限が無いパターンです。
この場合の解決策は .htacess
ファイルに書き込み権限を付与することです。
WP-CLI を実行するユーザーと .htaccess
ファイルの所有者が異なる場合は、所有者の変更が必要なこともあります。
例:
C. .htaccess
が存在せずディレクトリに書き込み権限が無い
B と似ていますが、元々 .htaccess
ファイルが存在せず WordPress インストールディレクトリに書き込み権限が無い場合も .htaccess
ファイルが作成されません。
この場合の解決策はインストールディレクトリに書き込み権限を追加することです。
A B C のどのパターンでも、 .htacess
の書き込み以前のリライトルールの更新が成功すれば「 Success: Rewrite rules flushed. 」というメッセージが出力されてしまい、また .htaccess
の書き込みに失敗してもわかりやすいメッセージが出力されないため、原因を自分で探す必要があります。
A B C の他にも原因となりうるものはいろいろありますが、おそらくこの 3 つが最もよくある原因では無いかと思います。