web-dev-qa-db-ja.com

"Settings-> Permalinks"がnginxサーバに.htaccessファイルを作るのはなぜですか?

私はワードプレスサイトを作成してnginxサーバーでホストし、settings-> Permalinksをクリックしてsave changesをクリックしました。これにより、サイトルートに.htaccessファイルが作成されます。

Apacheサーバーでは論理的であり、.htaccessファイルを作成する価値がありますが、nginxサーバーとの関係は何ですか?私のウェブサイトのルートから.htaccessファイルを削除しても安全ですか?

WordPressはグローバル$_SERVER['SERVER_SOFTWARE']変数を覗き見してウェブサーバーのタイプを検出しようとします。

Apacheチェックは次のとおりです。

$is_Apache = (strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false 
    || strpos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false);

Nginxチェックは次のとおりです。

$is_nginx = (strpos($_SERVER['SERVER_SOFTWARE'], 'nginx') !== false);

したがって、最初にチェックアウトする必要があります。

var_dump( $_SERVER['SERVER_SOFTWARE'] );

それが正しいかどうかを確認する。

いくつかの代替回避策は次のとおりです。

.htaccessファイルが次のように作成されないようにすることもできます。

add_filter( 'flush_rewrite_rules_hard', '__return_false' );

実行するsave_mod_rewrite_rules()を避けるために。

save_mod_rewrite_rules()関数内では、.htaccessが更新される前にgot_mod_rewrite()チェックがあります。使用することも可能です:

add_filter( 'got_rewrite', '__return_false' );

insert_with_markers()が実行されるのを避けるために、.htaccessファイルが書き込まれます。

3
birgire