質問

PHPエンジンがファイル拡張子のみが異なる同一ファイルをどのように処理するかの間に問題があるようです。

問題: 「if修正された条件付きリクエストは、完全なコンテンツを変更して返しました。」

また、ファイルの内容が同一であるにもかかわらず、.xxx拡張機能の識別ツインよりもはるかに高速であると測定しました。

alt text

alt text

「HTTPを使用すると、クライアントは条件付きリクエストを行い、保持しているコピーがまだ有効かどうかを確認できます。この応答にはラスト変更されたヘッダーがあるため、クライアントは検証のためにif修正-sinceのリクエストヘッダーを使用できるはずです。これは、リソースが変更されていなくても完全な応答を送信することを発見しました。


で終わるホームページ .php

alt text


まったく同じファイルですが、終了します .ast

alt text


与えられた:

home.phpファイルはhome.xxxとしてコピーされ、この拡張機能はhtaccessに追加されてPHPファイルとして認識されます。 .phpファイルは、新鮮さが3時間に設定されているphp.iniを聴きます。非.phpファイルは、次のことに従って新鮮さが2時間に設定されているhtaccessを聞く必要があります。

AddType application/x-httpd-php .php .ast .abc .xxx .etc

<IfModule mod_headers.c>
    ExpiresActive On
    ExpiresDefault M2419200
    Header unset ETag
    FileETag None
    Header unset Pragma
    Header set Cache-Control "max-age=2419200"

    ##### DYNAMIC PAGES
    <FilesMatch "\\.(ast|php|abc|xxx)$">
        ExpiresDefault M7200
        Header set Cache-Control "public, max-age=7200"
    </FilesMatch>
</IfModule>

これまでのところ、非PHPファイルが適切にキャッシュされないことを除いて、すべてがロードされます。囲まれた画像を参照してください。非PHPファイル拡張のみがエラーを引き起こし、ロードが遅くなります。

Page.php全体が速くロードされ、そこにあるすべての要素がキャッシュから適切にロードされますが、Page.ABCはキャッシュされるべきである間に完全なリクエストが返されます。つまり、ページ全体が遅いことを意味します。

結論:変更されていないコンテンツを返す条件付きリクエストを排除するために、何を変更する必要がありますか?

役に立ちましたか?

解決

サーバーは.phpではないため、拡張機能をデコードする方法を決定するのに苦労しているようです。 HTTPACESSでPHPとして認識されるように拡張機能を定義したとしても、サーバーがページを処理するためにいくつかの追加の手順が必要です。つまり、.phpを使用するよりも時間がかかります(ただ、おそらくサーバーの問題がこれをはるかに長くしていることを引き起こしています)。ページで.php拡張機能を使用してみませんか?なぜ.ABCが必要なのですか?マスキングする代わりに、デフォルトの拡張機能を使用することが常に最善です。

編集:この関数を各ページの上部に配置すると、ユーザーがオンにしているドメイン名を検出し、wwwとドメイン拡張機能を除去し、その特定のドメイン名のみのコンテンツを表示します。すべてのドメイン名に同じ.phpファイルを使用でき、ファンキーな拡張機能を実行する必要はありません。

<?php
$domain = explode(".", $_SERVER['SERVER_NAME']);
if ($domain[2]) {
    $domainName = $domain[1];
}
else {
    $domainName = $domain[0];
}

if ($domainName = "YourDomainNameWithNoExtension") {
    echo "Welcome to $domainName";
}
?>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top