PHPを介して現在のドメインでModPagespeedが有効になっていて許可されているかどうかを確認する方法を理解しようとしています。私は次のコードを書きましたが、この解決策に完全には満足していません。それは動作しますが、それはクロックです。
Pagespeedフィルターを使用した.htaccess(さまざまなドメインにサービスを提供)からの抜粋:
<IfModule pagespeed_module>
ModPagespeed On
ModPagespeedRewriteLevel PassThrough
...
ModPagespeedEnableFilters combine_css
...
</IfModule>
pagespeedtest.htmlからの抜粋:
...
<head>
...
<!-- If combine_css filter is active, the following code should be combined -->
<style type="text/css" media="all">@import url("/style1.css");</style>
<style type="text/css" media="all">@import url("/style2.css");</style>
<style type="text/css" media="all">@import url("/style3.css");</style>
...
</head>
このPHPコードでPagespeedが有効または許可されているかどうかを確認します。
$psturl = 'http://'. $_SERVER['HTTP_HOST'] .'/pagespeedtest.html';
$pagespeed_is_active = TRUE;
$pstheaders = get_headers($psturl, 1);
if ($pstheaders['Content-Length'] == 960) {
$pagespeed_is_active = FALSE;
}
PHP 5関数get_headers($ url)を使用してContent-Lengthヘッダーを取得します。元のファイルの長さは960バイトであることがわかっているので、最適化が実行されない場合、Content-Lengthはクライアントに提供されるときに同じである必要があると思います。
このアプローチに代わるものはありますか?pagespeedtest.htmlで実行する補足のHTTPリクエストは好きではありません。そのソリューションは、PageSpeedの構成に強く依存しています。combine_cssフィルターが無効になると$pagespeed_is_active == FALSE、ModPagespeedがOn許可されている場合でも取得されます。
これとまったく同じ.htaccessで一部のドメインを禁止できるため、別のソリューションを異なるドメインで検証する必要があります。ありがとうございました。