web-dev-qa-db-ja.com

関数を通して.htaccessコードを追加するにはどうすればいいですか?

私は関数を通して以下の.htaccessコードを追加する必要があります。

    <IfModule mod_deflate.c>
# Insert filters
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml

# Drop problematic browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>

## Expires Caching ##

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 2 week"
ExpiresByType image/jpeg "access 2 week"
ExpiresByType image/gif "access 2 week"
ExpiresByType image/png "access 2 week"
ExpiresByType text/css "access 2 week"
ExpiresByType application/pdf "access 2 week"
ExpiresByType text/x-javascript "access 2 week"
ExpiresByType application/x-shockwave-flash "access 2 week"
ExpiresByType image/x-icon "access 2 week"
ExpiresDefault "access 2 week"
</IfModule>

## Expires Caching ## 

私のテーマではfunction.php

function add_htaccess
{
//the above code to add
}

手動で追加したくないだけです。

2
Ezhil
/**
 * Inserts an array of strings into a file (.htaccess ), placing it between
 * BEGIN and END markers. Replaces existing marked info. Retains surrounding
 * data. Creates file if none exists.
 *
 * @param array|string $insertion
 * @return bool True on write success, false on failure.
 */
function add_htaccess($insertion)
{
    $htaccess_file = ABSPATH.'.htaccess';
    return insert_with_markers($htaccess_file, 'MyMarker', (array) $insertion);
}

ノート:

  • $insertionは文字列の配列です。各文字列はファイル内の新しい行を取得します。
  • もちろん、 'MyMarker'を自分の名前に置き換えてください。あなたのコンテンツはこの指定されたコンテナに挿入され、残りのファイルはそのままになります。
  • この関数は管理領域にのみロードされるinsert_with_markers()関数に依存しています。それ以外の場合は手動でwp-admin/includes/misc.phpをロードする必要があります。
  • この関数が機能するためには、.htaccessは書き込み可能でなければなりません。
3
Geert

ちょっとしたコツ - WordPressコアでどのように行われているかを調べることで、基本的なアイデアを得るはずです。

save_mod_rewrite_rules() および insert_with_markers() 関数のソースはあなたにとって興味深いかもしれません。

ルールがPHP fwrite() でファイルに書き込まれるのがわかります。
.htaccessファイル自体が存在し、書き込み可能であることなどをチェックするコードも同様に便利です。

インスピレーションを得ます。

シモンズ:仕事を簡単にするためのフィルタがあるかもしれませんが、とにかく背後にある方法を学ぶことはとにかく良い考えです、)

2
Michal Mau

アクションはgenerate_rewrite_rulesです。

あなたがそれらが役に立つと思うかもしれないこれらの質問をチェックしてください:

0
Sisir