静的および擬似静的優先度
静的および擬似静的優先度の問題を解決するための良い解決策は何ですか? 優先度の問題を解決するために .htm と .html の異なる拡張子を使用すると、別の問題が発生します。それがステータス コード 302 問題です
302 は検索エンジンにとって優しくなく、検索エンジンの誤解 (URL の正規化と URL ハイジャックに問題があり、検索エンジンによって不審なリダイレクトと判断されたり、[xxx ブログより] 不正行為とみなされたりする可能性があります)
.htm が擬似静的に作成され、ユーザーがxxx/xx.htm をクリックすると、対応する xx.php が実行されます。まず、xx.html が存在するかどうかを確認し、期限切れでない場合は、データとテンプレートを読み取って、対応する xx.html ページを生成します。 、xx.html を直接見つけます。 302 エラーを生成するのはこの場所のリダイレクトです。つまり...
そこで専門家に尋ねます。何か良い解決策はありますか?
.htaccess のアドレスを書き換えれば解決するはずです。見つからない場合は、次のルール。それが機能しない場合は、404 用のルールを作成します。
何はともあれ、静的ページがあるかどうかを確認したい場合は、PHP プログラムを使用する必要があります。つまり、Apache はこの問題を気にしません。
if(!file_exists('xxx/xx.htm')||(time()-filemtime('xxx/xx.htm'))>3600)){
//コード生成自動プログラム、xxx として保存/xx.htm
}else{
//file_get_contents(xxx/xx.htm); }
include、require を減らし、同じコードを適切にマージすることをお勧めします。 function( ) 呼び出しなど。
さらに、スペースを変更することも検討できます。
しかも、擬似静的ページのURLは関数で生成するはずです、それをしないなら思い切って修正すべきです
2. よくある書き換え。ルールには
RewriteCond %{ REQUEST_FILENAME} !-f が含まれます
ファイルが存在する場合は、次の RewriteRule を実行せずにファイルに直接アクセスします。
3. 本物の .htm を php で処理する必要がある場合、「静的」が何を意味するのかわかりません
知りませんでした
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
の役割
今やっと分かりました
ありがとうございます!それを結びます!