Apache の威力は、ついに私の想像を超えました。PHP の毛皮をトンボのように少し触っただけで、この毛皮は PN 接合の「雪崩現象」のように爆発しました。さまざまなテクノロジーを組み合わせて、無限のアプリケーションの可能性を実現します。
九州の将来のサーバーはトラフィックを制限するため、トラフィック負荷を軽減することで金銭的支出も削減できます。
トラフィックを削減する最も便利な方法は、Gzip 圧縮を使用することです。Apache の gzip 圧縮は、zlib と呼ばれるクラス ライブラリと gzip モジュール (mod_gzip.c) によって実現されます。 gzip 自体はよく知られており、高い圧縮率を備えたオープン ソースの圧縮原理を備えているため、オープン ソースの Apache はこのオープン ソースの圧縮テクノロジを使用します。
この .htaccess は、Apache 用の素晴らしいツールでもあります。これは、Apache にインストールされているモジュールによっても異なります。たとえば、このファイルに何を書き込めるかが決まります。モジュール (Module mod_rewrite .c) を使用すると、URL 書き換えコードを記述してファイル書き換えを実装できます。
知識の普及が完了しました。 。 。 。
本題に入りましょう。
サイト全体の実際の静的 HTML ファイルを gzip 送信にするにはどうすればよいですか?
理解を容易にするために、誰でも簡単に理解できるように簡単な php プログラムを書きました。
まず、gzip圧縮アルゴリズムを使用してl.phpを作成し、ファイル内のxxx.htmlを読み込んで表示し、その後、xxx.htmlを.htaccess内の1.phpに書き換えます。単純にする。サーバーは .htaccess を最優先と見なしているため、xxx.html にアクセスすると、この静的ファイルにはアクセスされませんが、1.php にはアクセスされます。
以下は私のコードです: (index2.html を読み込んで繰り返します。 Write)
.htaccess:
コードをコピーします コードは次のとおりです:
# RewriteEngine モードをオンにする
RewriteEngine On
RewriteBase /
RewriteRuleindex2.html l.php?fn=index2.html
1.php
コードをコピー コードは次のとおりです:
$phpver = phpversion();
$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;
if ( $phpver >= '4.0.4pl1' && ( strstr($useragent,'compatibility') || strstr($useragent,'Gecko') ) )
{
if ( extension_loaded('zlib') )
{
ob_start('ob_gzhandler');
}
}
else if ( $phpver > '4.0' )
{
if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') )
{
if ( extension_loaded('zlib') )
{
$do_gzip_compress = TRUE;
ob_start();
ob_implicit_flush(0);
header('Content-Encoding: gzip');
}
}
}
?>
$rfile = addslashes(dirname(dirname(__FILE__))).'/'.'./httpdocs/'.$_REQUEST['fn'];
echo READ_FILE_CONTENTS($rfile);
function READ_FILE_CONTENTS($file)
{
if(!function_exists("file_get_contents"))return file_get_contents($file);
$ifile = fopen($file,"r");
$contents = false;
if($ifile) while (!feof($ifile)) $contents .= fgets($ifile);
fclose($ifile);
$contents を返す;
}
?>
// 必要に応じてバッファリングされた出力を圧縮し、ブラウザに送信します
if ( $do_gzip_compress )
{
//
// php.net から借用しました!
//
$gzip_contents = ob_get_contents();
ob_end_clean();
$gzip_size = strlen($gzip_contents);
$gzip_crc = crc32($gzip_contents);
$gzip_contents = gzcompress($gzip_contents, 9);
$gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4);
echo "x1fx8bx08x00x00x00x00x00";
echo $gzip_contents;
echo pack('V', $gzip_crc);
echo pack('V', $gzip_size);
}
終了;
?>
实际上これ西能用のより良い方法解决,是用这个
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule 。 /xxx/xxx.php [L]
しかし、私たちはこの%{REQUEST_FILENAME}を処理できるかどうかまだ研究していません、高手赐教を望みます。
http://www.bkjia.com/PHPjc/317907.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/317907.html技術記事 apache の强大终超出了我的想念,仅蜻点水一般接触及了一点 php 皮毛,此点皮毛就在我原有的知识库基础上爆炸开来,好像 PN 结的「雪崩击穿...
」