ホームページ バックエンド開発 PHPチュートリアル PHP で擬似静的を実現するには 4 つの手順があると思いますか?

PHP で擬似静的を実現するには 4 つの手順があると思いますか?

Jun 13, 2016 pm 12:28 PM
apache index nbsp php test

PHP で擬似静的を実現するには 4 つの方法がありますが、思い当たりますか?

擬似静的実装ソリューションについて言えば、「簡単です。Apache の書き換えルールを設定するだけです

しかし、この状況は見つかりませんでした。最近、たくさんの新機能が毎日追加されていますが、まだ最初の 2 日間ですが、2 日以降は、運用と保守のクラスメートが協力してくれるようになりました。日が経つと、運営や保守のクラスメートに叱られます。どうして一度に全部やって、あなたはあまりにも鈍くて愚かなので、毎日私を困らせませんか?しかし、これからオンラインに接続しようとしているので、運用および保守のクラスメートに熱心に質問し、プログラマーの世界で最も恥知らずな言葉を言わなければなりません。「これが最後の変更です」。もう一度変えなければなりません、ため息、あなたの人格は完全に台無しです。 。 。

このようなお悩みをお持ちの方は、以下の記事を読んでいただき、今後二度と運用保守を依頼することがなくなり、安心してご利用いただけます。 。 。

それでは、PHP で擬似静的を実装する方法は何通りあるでしょうか?個人的な意見と統計では、


の 4 つの方法があります。 1. Apache の URL 書き換えルールを使用します。これはすべて Apache で設定します。学生がここで作成したものです。簡単な設定を列挙するだけです。

<span style="color: #000000;">RewriteEngine OnRewriteRule </span>^/test.html index.php?controller=index&action=test [L]
ログイン後にコピー

2. PHP の pathinfo を使用します。「www.xxx.com」を再生する Web サイトをいくつか見たことがありますか? /index.php/c/index/a/test/id/100' このように、もちろんこれをサポートするには、'php.ini' でパラメータを設定する必要があります

'cgi .fix_pathinfo' が設定されています1に。例として「www.xxx.com/index.php/c/index/a/test/id/100」を取り上げます

<span style="color: #0000ff;">echo</span> <span style="color: #800080;">$_SERVER</span>['PATH_INFO']; <span style="color: #008000;">//</span><span style="color: #008000;">输出'/c/index/a/test/id/100'</span>
ログイン後にコピー
ここまでで、理解できるはずです。その後、解析します。この段落に実際のアドレスを割り当てます

3. 404 メカニズムを使用する 一般に、疑似静的ページは実際には存在しないページであるため、Apache 404 構成を使用できますが、問題は、'post' タイプのリクエストが放棄され、'$_POST'、

を取得できなくなることですが、ここでの 404 ページが '404page であると仮定すると、'$_GET' は引き続き取得できることです。 .php'、apache 構成は次のとおりです:

ErrorDocument 404 /404page.php
ログイン後にコピー
次に、次のコードを '404page.php' に埋め込みます

<span style="color: #008080;">header</span>("HTTP/1.1 200 OK"); <span style="color: #008000;">//</span><span style="color: #008000;">这里一定要有,不然状态就是404</span><span style="color: #800080;">$reqUrl</span> = <span style="color: #800080;">$_SERVER</span>['REQUEST_URI']; <span style="color: #008000;">//</span><span style="color: #008000;"> 请求地址</span><span style="color: #008000;">/*</span><span style="color: #008000;">** 从URL中解析参数</span><span style="color: #008000;">*/</span><span style="color: #0000ff;">function</span> parseUrlParams(<span style="color: #800080;">$queryUrl</span><span style="color: #000000;">){    </span><span style="color: #800080;">$arr</span> = <span style="color: #008080;">explode</span>('?', <span style="color: #800080;">$queryUrl</span><span style="color: #000000;">);    </span><span style="color: #008080;">parse_str</span>(<span style="color: #800080;">$arr</span>[1], <span style="color: #800080;">$param</span><span style="color: #000000;">);    </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$param</span><span style="color: #000000;">)    {        </span><span style="color: #0000ff;">foreach</span>(<span style="color: #800080;">$param</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$key</span> => <span style="color: #800080;">$value</span><span style="color: #000000;">)        {            </span><span style="color: #800080;">$_GET</span>[<span style="color: #800080;">$key</span>] = <span style="color: #800080;">$value</span><span style="color: #000000;">;        }    }}parseUrlParams(</span><span style="color: #800080;">$reqUrl</span>); <span style="color: #008000;">//</span><span style="color: #008000;"> url解析参数//然后你就可以使用 $reqUrl 根据自己的规则匹配不同的实际请求地址</span><span style="color: #0000ff;">if</span>(<span style="color: #008080;">preg_match</span>('#^/test.html#is', <span style="color: #800080;">$reqUrl</span>, <span style="color: #800080;">$matches</span><span style="color: #000000;">)){   </span><span style="color: #0000ff;">include</span>('index.php'<span style="color: #000000;">);   </span><span style="color: #0000ff;">die</span><span style="color: #000000;">();}</span>
ログイン後にコピー

4. 方法 3 の改良版。方法 3 は、Apache の内部機構におけるリダイレクトに相当し、post(get) で渡されるパラメータが取得できなくなります。実際に上記を解析してみると、該当するファイルが見つからない場合は、ファイルを指定してOKであれば、この時点でPOSTなどを行う必要はありません。失われることはありません。 Apache の設定は次のとおりです。

<span style="color: #000000;">RewriteEngine OnRewriteCond </span>%{REQUEST_FILENAME} !-<span style="color: #000000;">fRewriteCond </span>%{REQUEST_FILENAME} !-<span style="color: #000000;">dRewriteRule </span>. index.php
ログイン後にコピー
上記の設定の一般的な意味は、要求されたファイルまたはディレクトリが見つからない場合、ルートで 'index.php' を使用することです。代わりに、'index.php' 内の関連パラメータを取得し、実際のリクエスト アドレスに解析することができます。

<span style="color: #008000;">/*</span><span style="color: #008000;">** 获取当前请求的URI地址[email protected] void[email protected] painsOnline[email protected] string URI</span><span style="color: #008000;">*/</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> getReqUri(){    </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">trim</span>(<span style="color: #800080;">$_SERVER</span>["REQUEST_URI"<span style="color: #000000;">]);}</span><span style="color: #800080;">$reqUri</span> =<span style="color: #000000;"> getReqUri();</span><span style="color: #0000ff;">if</span>(<span style="color: #008080;">preg_match</span>('/^\/test.html/isU', <span style="color: #800080;">$reqUri</span><span style="color: #000000;">)){</span><span style="color: #008000;">//</span><span style="color: #008000;">解析请求地址</span>    <span style="color: #0000ff;">include</span> 'test.php'<span style="color: #000000;">;    </span><span style="color: #0000ff;">exit</span><span style="color: #000000;">();}</span>
ログイン後にコピー

私は非常に才能のある人間です。知識が少ないので不足がある場合は補ってください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPの現在のステータス:Web開発動向を見てください PHPの現在のステータス:Web開発動向を見てください Apr 13, 2025 am 12:20 AM

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHP対Python:コア機能と機能 PHP対Python:コア機能と機能 Apr 13, 2025 am 12:16 AM

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHP対その他の言語:比較 PHP対その他の言語:比較 Apr 13, 2025 am 12:19 AM

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

Debian OpenSSL構成を確認する方法 Debian OpenSSL構成を確認する方法 Apr 12, 2025 pm 11:57 PM

この記事では、DebianシステムのOpenSSL構成を確認して、システムのセキュリティステータスをすばやく把握できるように、いくつかの方法を紹介します。 1.最初にOpenSSLバージョンを確認し、OpenSSLがインストールされているかどうかを確認し、バージョン情報を確認します。端末に次のコマンドを入力します。OpenSSlversionがインストールされていない場合、システムはエラーを促します。 2。構成ファイルを表示します。 OpenSSLのメイン構成ファイルは、通常/etc/ssl/openssl.cnfにあります。テキストエディター(Nanoなど)を使用して、次のように表示できます。sudonano/etc/ssl/openssl.cnfこのファイルには、キー、証明書、暗号化アルゴリズムなどの重要な構成情報が含まれています。 3。OPEを利用します

PHP:多くのウェブサイトの基礎 PHP:多くのウェブサイトの基礎 Apr 13, 2025 am 12:07 AM

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

Debian Apacheログを使用してWebサイトのパフォーマンスを向上させる方法 Debian Apacheログを使用してWebサイトのパフォーマンスを向上させる方法 Apr 12, 2025 pm 11:36 PM

この記事では、Debianシステムの下でApacheログを分析することにより、Webサイトのパフォーマンスを改善する方法について説明します。 1.ログ分析の基本Apacheログは、IPアドレス、タイムスタンプ、リクエストURL、HTTPメソッド、応答コードなど、すべてのHTTP要求の詳細情報を記録します。 Debian Systemsでは、これらのログは通常、/var/log/apache2/access.logおよび/var/log/apache2/error.logディレクトリにあります。ログ構造を理解することは、効果的な分析の最初のステップです。 2。ログ分析ツールさまざまなツールを使用してApacheログを分析できます。コマンドラインツール:GREP、AWK、SED、およびその他のコマンドラインツール。

See all articles