PHP擬似静的
4471 ワード
前言
擬静的な話題については諸説ある.私はこれらの議論をあまり気にしていませんが、いくつかの牛の見方は確かに味があり、比較的公正です.
擬似静的を使用するとCPUリソースが消費されますが、SEOなどにとってより有益です.擬似静的ではなくhtmlなどの純粋な静的を使用すると、ハードディスクの読み書きのボトルネックになります.
いずれにしても、新しい知識を学ぶという理念を受け継いで、偽静的な実現を理解するのはいいですね.JavaWebでの擬似静的実現の考え方とは少し違います(ただし原理的には一致していますが、多くは説明しています).PHPでは微小静的実現はやや複雑ですが、より柔軟になり、メンテナンスも便利になります.
PHP擬似静的
PHPについて擬似静的を実現する方法は,ルーティングの面で解決できるだけでなく,apache,ngnixサーバなどの方法で実現できる.今日はちょうどこのような話題に出会って、ここで記録して、時々の必要に備えます.
apacheを使用して擬似静的を実現
Apacheサーバを利用して、私個人の少しの理解を実現します.料理に似ている.
私たちは料理を作る前に調理器具が必要で、それから火をつけて、どんな料理を作るかによって異なる調理方法を選ぶ必要があります.
同様に、本方式の原理は類似している.まずApacheサーバーはこのような調理器具で、それから私たちは「偽静的方法」を開いて火をつけたようなものです.最後に,異なる書き換え規則に基づいて異なる擬似静的実装を完了した.
これで分かりやすいでしょう.
ステップ1:httpd.confコメント
apacheサーバのインストールディレクトリの下に
httpd.conf
ファイルを見つけて、下図に示すmode_rewrite.so
行の記録項目を開いて、その行の一番前の#
番のコメントを削除すればいいです.このコンテンツが開いているかどうかを確認するには、
phpinfo()
プローブ関数を使用します.この点の比較的基礎は,ここでは紹介しない.次は正式に「点火」しましょう.具体的には、先ほどの
httpd.conf
ファイルの下にAllowOverride None
を見つけて、AllowOverride All
に変更すればいいです.ステップ3:必要に応じて擬似静的ルールを追加する
今は具体的な書き換えルールです.具体的には、「擬似静的」を行う必要がある項目のルートディレクトリの下に
.htaccess
ファイルを追加する.通常,PHPの擬似静的化を実現するためにこのような方法を用いる.
コード借用ネットワーク
.htaccess
ファイルへの書き込み<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule index.html$ index.php
RewriteRule index-([1-9]+[0-9]*).html$ index.php?p=$1
RewriteRule ([a-z]{1,})-([0-9]{1,}).html$ index.php?action=$1&id=$2
</IfModule>
具体的な意味は以下の通りです.
RewriteEngine
:エンジンスイッチを書き換え、Onはオン、Offはオフ.- RewriteRule
:ルールを書き換えます.つまり、私たちのレシピです.各ルールは、上から下への優先度で一致し、複数の書き換えルールを書くことができます.書き換えルールの詳細
ルールテンプレートは、キーワードRewriteRule静的ルーティング
$
動的PHPルーティングである.間にスペースがあることを忘れないでください.実はPythonのDjangoというフレームワークを学んだことがあるのは知っているはずですが、実はマッチング変換のような過程で、一対一変換です.習ったことがないということも簡単に理解できるはずです.
重要なのは,静的ルーティングが正規表現を用いてマッチングできることであり,php動的パラメータの特徴にちょうど対応することである.
次は実戦でやろう.コードを用意して、プロジェクトディレクトリに先ほどの
.htaccess
ファイルを追加します.ルールは上記の通りです.次にindexを追加します.phpファイル.コードの内容は次のとおりです.<?php
/** * Created by PhpStorm. * User: ${ } * Date: 2017/1/18 * Time: 11:07 */
if($_GET['name']) {
echo "Name: ".$_GET['name']."<br />";
}
if($_GET['age']) {
echo "Age: ".$_GET['age']."<br />";
}
エントリーレベル:
RewriteRule index.html$ index.php
厳密に一致し、ブラウザに入力パラメータはindexである.htmlの時、apacheはクライアントの要求をindexに送ります.phpで解析を行います.菜鳥級:
RewriteRule index-([a-z0-9]*).html$ index.php?name=$1
次に、正規マッチングを追加して実装します.PHPダイナミックモードを使用!擬似静的方式を用いる(中国語の符号化問題のため、ここでは英語のアルファベットを用いる)
しかしマッチングエラーの場合は404のエラーが報告される.
進級者:
RewriteRule ([a-z]{1,})-([0-9]{1,}).html$ index.php?name=$1&age=$2
上の敷物があれば、下のものは分かりやすくなります.ルールは任意です(小文字-数字.html形式のルーティングは後ろのactionパラメータとidパラメータに配置されます)まとめ
うーん、だいたいこれくらいです.実は偽静的な実現方式について、技巧はまだたくさんあって、ここで簡単に紹介して、記録をして、レンガを投げて玉を引くこともできます.
そして多くのプロジェクトの
.htaccess
文書が書かれているのは本当に古典的で古典的です.私たちはもっと参考にすべきだ.最後に、今日は2017年の元日です.この文章を見たあなたを祈っています.
新年おめでとうございます.新しい年のプログラミングfreebug.