thinkPHP5 は優れた PHP 開発フレームワークであり、高速な開発手法と豊富な機能コンポーネントを提供しており、その重要な機能の 1 つが URL ルーティング機能です。ただし、デフォルトでは、ルートにアクセスするには、URL にindex.php を追加する必要があります。美しさとセキュリティのために、この記事では thinkPHP5 でエントリ ファイルを非表示にする方法を紹介します。
1. 環境の準備
URL 非表示化をスムーズに行うために、URL 非表示化を行う前に、ローカル環境が疑似静的機能と URL 書き換え機能をサポートしているかどうかを確認する必要があります。 。まず、Apache や Nginx などの Web サーバーがインストールされていることを確認し、フレームワークが整形された URL を認識して生成できるように、構成ファイルで擬似静的機能と URL 書き換え機能を有効にする必要があります。
2. URL の非表示をオンにする
thinkPHP5 の設定ファイルで、app.php ファイルを見つけて、 url_html_suffix 構成項目。空の文字列に設定します。つまり:
'url_html_suffix' => ''
これにより、サフィックスのない URL が許可されます。
thinkphp5 では、ルーティング ルールを設定することで、アクセス URL とコントローラや操作メソッドを対応付けることができます。隠れた効果を引き出すには、各コントローラーまたは操作メソッドに対応するルーティング設定を作成し、対応する URL を意味のあるコンテンツにマッピングする必要があります。たとえば、次のようになります。
Route:: get('news /:id','index/index/news',[],['id'=>'\d ']);
このようにして、URL /news/1 にアクセスすると、インデックスコントローラーのnews操作メソッドが自動的に呼び出され、リクエストパラメータのidが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. 追加機能
アプリケーションをさらに保護するために、URL サフィックスを設定することでアプリケーションの安全性を高めることができます。安全性。たとえば、すべての URL サフィックスを .shtml、.html、.shtml などに設定すると、アプリケーションへの攻撃を効果的に回避できます。
構成ファイルで url_html_suffix オプションを見つけて、対応するサフィックスを追加できます (例:
'url_html_suffix' => 'shtml|html|htm'
フレームワークが 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 サイトの他の関連記事を参照してください。