ホームページ  >  記事  >  PHPフレームワーク  >  thinkPHP5 でエントリ ファイルを非表示にする方法

thinkPHP5 でエントリ ファイルを非表示にする方法

PHPz
PHPzオリジナル
2023-04-11 09:14:511069ブラウズ

thinkPHP5 は優れた PHP 開発フレームワークであり、高速な開発手法と豊富な機能コンポーネントを提供しており、その重要な機能の 1 つが URL ルーティング機能です。ただし、デフォルトでは、ルートにアクセスするには、URL にindex.php を追加する必要があります。美しさとセキュリティのために、この記事では thinkPHP5 でエントリ ファイルを非表示にする方法を紹介します。

1. 環境の準備

URL 非表示化をスムーズに行うために、URL 非表示化を行う前に、ローカル環境が疑似静的機能と URL 書き換え機能をサポートしているかどうかを確認する必要があります。 。まず、Apache や Nginx などの Web サーバーがインストールされていることを確認し、フレームワークが整形された URL を認識して生成できるように、構成ファイルで擬似静的機能と URL 書き換え機能を有効にする必要があります。

2. URL の非表示をオンにする

  1. 設定ファイルを開きます

thinkPHP5 の設定ファイルで、app.php ファイルを見つけて、 url_html_suffix 構成項目。空の文字列に設定します。つまり:

'url_html_suffix' => ''

これにより、サフィックスのない URL が許可されます。

  1. ルーティングの設定

thinkphp5 では、ルーティング ルールを設定することで、アクセス URL とコントローラや操作メソッドを対応付けることができます。隠れた効果を引き出すには、各コントローラーまたは操作メソッドに対応するルーティング設定を作成し、対応する URL を意味のあるコンテンツにマッピングする必要があります。たとえば、次のようになります。

Route:: get('news /:id','index/index/news',[],['id'=>'\d ']);

このようにして、URL /news/1 にアクセスすると、インデックスコントローラーのnews操作メソッドが自動的に呼び出され、リクエストパラメータのidが1に設定されます。

  1. 構成サーバー

対応する構成は、Apache または Nginx でも実行する必要があります。 Apache を例として、次の内容を .htaccess に追加します:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.* ) $index.php?s=/$1 [QSA,PT,L]

このコードでは、RewriteEngine をオンにすると、Apache の URL 書き換え機能 (RewriteCond %{REQUEST_FILENAME} !-d および RewriteCond %{ REQUEST_FILENAME}) がオンになります。 !-f は、静的リソースへのアクセスへの影響を避けるために、ファイルとディレクトリへのアクセス要求を除外します。最後に、RewriteRule を使用して、URL が thinkPHP エントリ ファイルindex.php を指すようにし、ルーティング情報を取得します。

4. 追加機能

  1. URL サフィックスの設定

アプリケーションをさらに保護するために、URL サフィックスを設定することでアプリケーションの安全性を高めることができます。安全性。たとえば、すべての URL サフィックスを .shtml、.html、.shtml などに設定すると、アプリケーションへの攻撃を効果的に回避できます。

構成ファイルで url_html_suffix オプションを見つけて、対応するサフィックスを追加できます (例:

'url_html_suffix' => 'shtml|html|htm'

  1. URL を自動的に識別する

フレームワークが URL を自動的に識別できるように、Route クラスの register メソッドにルーティング ルールを追加できます。例:

if (is_file(APP_PATH . 'route.php')) {
Route::get('/', 'index/index');
Route::get( ' build', 'index/build');
include_once APP_PATH . 'route.php';
}

このように、ルールにマッチするURLがあれば、対応するコントローラーまたはハウツーに自動的に転送されます。

3. 概要

上記の手順により、thinkPHP5 で URL 非表示操作を簡単に実装でき、アプリケーションをより美しく、より安全で、操作しやすくすることができます。ただし、実際のアプリケーションでは、最高のサービス エクスペリエンスを実現するには、より詳細な構成とデバッグが必要です。

以上がthinkPHP5 でエントリ ファイルを非表示にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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