目次
CodeIgniterでPATH_INFOがオンになっているときにmod_rewriteがindex.phpを隠す問題。
$config['controller_trigger'] = 'c'; //コントローラー名
ホームページ バックエンド開発 PHPチュートリアル CI フレームワーク .htaccess が URL 内のindex.php を隠す問題の解決策

CI フレームワーク .htaccess が URL 内のindex.php を隠す問題の解決策

Jun 23, 2016 pm 01:57 PM
ci htaccess index.php 解決する 隠れる

CodeIgniter (以下、「CI」と呼びます) は、優れた外国の PHP 軽量 MVC フレームワークであり、PHP4 と PHP5 をサポートし、高いスケーラビリティ要件を持つ小規模および中規模の Web アプリケーションを開発するための強力なツールです。これまで見てきたブログのプログラムは CI を使用して書かれています。

MVC アーキテクチャの考え方に従い、CI 内のすべてのコントローラーは、シングル ポイント エントリ ファイルindex.php (デフォルト) を介してロードされ、呼び出される必要があります。つまり、デフォルトでは、すべての CI 開発プロジェクトの URL は次の形式になります。

http://localhost/index.php/blog/logs/this_is_a_test_entry

明らかに、デフォルトでは、index が存在します。 URL アドレス部分の php は、URL の簡潔さと SEO の進行にある程度影響します。この記事で紹介した方法で、この厄介なIndex.phpを削除することができます。

CodeIgniter ユーザー マニュアルにこの問題の解決策があることに気づいたかもしれません。ただし、公式に提供されている .htaccess 構成では常に問題が解決されるわけではありません。この記事では、より完全な解決策を提供します。

注: 続行する前に、ホストが .htaccess 構成をサポートしていることを確認してください。このうち、Apache を Web サーバーとして使用する場合は、mod_rewrite モジュールのサポートを有効にする必要があります。IIS を Web サーバーとして使用する場合は、追加の ISAPI_Rewrite 拡張機能をインストールする必要があります。

具体的な方法は以下の通りです。

1. 以下の設定情報をコピーし、.htaccess ファイルとして保存します。

以下は .htaccess ファイルの情報です
1 2 3 4 5 6 7 8 9 10 11 12 13 14

RewriteEngineOn

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule^(.*)$ /index.php?/$1 [L]

#mod_rewrite モジュールがインストールされていない場合、404 ページすべてが #インデックスに送信されます。 php, このとき、プログラムは非表示が設定されていないものとして実行されます。 ErrorDocument404 /index.php

2. 上記の .htaccess ファイルを、CI が配置されているプロジェクトのルート ディレクトリにアップロードします (つまり、index.php と同じレベルのディレクトリ (Down)

3. application/config.php 内の次のパラメータを変更します:

1 $config['index_page'] = "index.php";

1

上記の 3 つのステップは必須です。すべてが正常に構成されている場合、プログラムを再度実行すると、プログラムが自動的にindex.php URLセグメントを非表示にしていることがわかります。

Trackback(UTF-8): http://www.cnSaturn.com/trackback/40



CodeIgniterでPATH_INFOがオンになっているときにmod_rewriteがindex.phpを隠す問題。

CodeIgniter で、URI アドレッシング モードを AUTO から PATH_INFO に変更すると、次のようになります。

$config['uri_protocol'] = 'PATH_INFO';

注: $_GET を渡したいため、PATH_INFO がオンになります。システムのデフォルトの POST メソッドの代わりに値を取得します。

この場合、上記の .htaccess ソリューションを引き続き使用すると、結果は次のようになります。index.php は正常に非表示になりましたが、メイン コントローラーは値を正しく取得できません。

解決策は次のとおりです。たった 1 ステップです:

次の書き換えルールで、index.php の後の疑問符を削除するだけです。

RewriteRule^(.*)$ /index.php?/$1[L]

変更されたルールは次のとおりです:

RewriteRule^(.*)$ /index.php/$1 [L]

その他の場所は変更ありません。 ============================================ ================================================= ==============


[その他]

ウェブサイト開発フレームワーク CodeIgniter の URL を教えてください

index.php ファイルの削除方法

推定 CodeIgniter を学習するときに多くの人が実行したい最初のステップは、index.php を削除する方法です。この公式マニュアルには、.htaccess ファイルの変更方法に関する関連チュートリアルが含まれています (サーバーが Apache である場合)。 RewriteCond $1 !^(index.php|images|robots.txt)

RewriteRule ^(.*)$ /index.php/$1 [L]

もちろん、多くの人が必要に応じて修正していますが、エラーが発生しています、すべての訪問 それはすべて 404 であり、この 404 は Apache の 404 ページであり、CodeIgniter の 404 エラー ページではありません。

この種の問題は、Apache の書き換えルールを理解していないために発生します。

最初の行では、RewriteEngine エンジンをオンに設定します。これは、URL の書き換えを有効にします。

2 行目では、 URL 書き換えルール,!^ (index.php|images|robots.txt) この正規表現は、書き換える必要はないが直接アクセスされるファイルを示します

3 行目の ^(.*)$ は正規表現です。これは、すべてのリクエストが /index.php/$1 に送信されることを意味します。URL に詳しい人なら、バックスラッシュ (/) で始まるものは相対パスであることを知っています。ルートは URL です。

そのため、CodeIgniter が Web サイトのルートディレクトリにインストールされていない場合、必然的にエラーが発生します。これを解決するにはどうすればよいでしょうか? 対応する解決策は CodeIgniter マニュアルにも記載されています:

上記の最後の文を次のように変更します: RewriteRule ^(.*)$index.php/$1 [L]
  • index.php の前を削除するだけです。スラッシュで十分です。
  • URL サフィックスを追加する方法
  • 以上の手順で、index.php を非表示にすることができました。これで、ほとんどの人は、あなたの Web サイトが CodeIgniter で開発されたものであるか、ROR で開発されたものであるか区別できなくなります。 。

    しかし、URL の後にサフィックスを追加するにはどうすればよいでしょうか? この方法では、config/config.php ファイルを変更することで、生成された URL に指定したファイルのサフィックスを追加することもできます。たとえば、.html を追加できる場合は、.asp、.jsp も追加できます。

    このようにして、 http://www.hualai.net.cn/index.php/news/view/about を http://www.hualai.net.cn/index.php/news/view/ about に変更できます。 .html。

    クエリ文字列の使用方法

    通常、クエリ文字列を使用する必要はありませんが、CodeIgniter のレスト モードを使用して実現できない特殊なケースが常に存在するため、URL でクエリ文字列を使用する必要があります。

    index.php?c=products&m=view&id=345

    CodeIgniter この機能はデフォルトではオフになっています。オンにしたい場合は、設定ファイル application/config/config.php を開くと、次の内容が表示されます。

    $config ['enable_query_strings'] = FALSE;

    $config['controller_trigger'] = 'c'; //コントローラー名

    $config['function_trigger'] = 'm'; $config[ 'directory_trigger']='d'; //コントローラーが配置されているサブディレクトリの名前

    enable_query_strings を TRUE に変更すると、この関数が有効になります。この時点で、キーワードを通じて必要なコントローラーとメソッドを呼び出すことができます:

    index.php?c=controller&m=method

    これは、CodeIgniter を使用してページネーションを作成するときに便利です。

    $config['index_page'] = ""; //空に設定します
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

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

    SublimeText3 中国語版

    SublimeText3 中国語版

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

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

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

    Win11システムに中国語言語パックをインストールできない問題の解決策 Win11システムに中国語言語パックをインストールできない問題の解決策 Mar 09, 2024 am 09:48 AM

    Win11 システムに中国語言語パックをインストールできない問題の解決策 Windows 11 システムの発売に伴い、多くのユーザーは新しい機能やインターフェイスを体験するためにオペレーティング システムをアップグレードし始めました。ただし、一部のユーザーは、アップグレード後に中国語の言語パックをインストールできず、エクスペリエンスに問題が発生したことに気づきました。この記事では、Win11 システムに中国語言語パックをインストールできない理由について説明し、ユーザーがこの問題を解決するのに役立ついくつかの解決策を提供します。原因分析 まず、Win11 システムの機能不全を分析しましょう。

    Black Shark携帯電話の電源が入らない問題を解決する方法を教える5つのヒント! Black Shark携帯電話の電源が入らない問題を解決する方法を教える5つのヒント! Mar 24, 2024 pm 12:27 PM

    スマートフォン技術が発展し続けるにつれて、携帯電話は私たちの日常生活においてますます重要な役割を果たしています。 Black Shark フォンは、ゲーム パフォーマンスに重点を置いたフラッグシップ フォンとして、プレイヤーから高い支持を得ています。ただし、場合によっては、Black Shark 携帯電話の電源が入らないという状況にも直面するため、この問題を解決するために何らかの措置を講じる必要があります。次に、Black Shark 携帯電話の電源が入らない問題を解決する方法を説明する 5 つのヒントを共有しましょう: ステップ 1: バッテリー残量を確認する まず、Black Shark 携帯電話に十分な電力があることを確認します。携帯電話のバッテリーが消耗している可能性があります

    小紅書で公開するときに写真が自動的に保存される問題を解決するにはどうすればよいですか?投稿時に自動保存された画像はどこにありますか? 小紅書で公開するときに写真が自動的に保存される問題を解決するにはどうすればよいですか?投稿時に自動保存された画像はどこにありますか? Mar 22, 2024 am 08:06 AM

    ソーシャルメディアの継続的な発展に伴い、Xiaohongshu はますます多くの若者が自分たちの生活を共有し、美しいものを発見するためのプラットフォームとなっています。多くのユーザーは、画像を投稿する際の自動保存の問題に悩まされています。では、この問題をどうやって解決すればよいでしょうか? 1.小紅書で公開するときに写真が自動的に保存される問題を解決するにはどうすればよいですか? 1. キャッシュをクリアする まず、Xiaohongshu のキャッシュ データをクリアしてみます。手順は次のとおりです: (1) 小紅書を開いて右下隅の「マイ」ボタンをクリックします。 (2) 個人センター ページで「設定」を見つけてクリックします。 (3) 下にスクロールして「」を見つけます。 「キャッシュをクリア」オプションを選択し、「OK」をクリックします。キャッシュをクリアした後、Xiaohongshu を再起動し、写真を投稿して、自動保存の問題が解決されるかどうかを確認します。 2. 小紅書バージョンを更新して、小紅書が正しく動作することを確認します。

    このデバイスにドライバーをロードできません。解決するにはどうすればよいですか? (個人的にテスト済みで有効です) このデバイスにドライバーをロードできません。解決するにはどうすればよいですか? (個人的にテスト済みで有効です) Mar 14, 2024 pm 09:00 PM

    コンピューターがドライバーを読み込めない場合、デバイスが正しく動作しないか、コンピューターと正しく対話できない可能性があることは誰もが知っています。では、このデバイスにドライバーをロードできないことを示すプロンプト ボックスがコンピューターに表示された場合、問題を解決するにはどうすればよいでしょうか?以下のエディタでは、問題を簡単に解決する 2 つの方法を説明します。このデバイスにドライバーをロードできません 解決策 1. スタート メニューで「カーネル分離」を検索します。 2. メモリの整合性をオフにします。上記のメッセージには、「メモリの整合性がオフになっています。デバイスは脆弱である可能性があります。」というメッセージが表示されます。戻るボタンをクリックして無視してください。使用には影響しません。 3. マシンを再起動すると、問題が解決することがあります。

    WeChatの友達をブロックしたり削除したりせずに非表示にする方法は? WeChatの友達をブロックしたり削除せずに非表示にする方法 WeChatの友達をブロックしたり削除したりせずに非表示にする方法は? WeChatの友達をブロックしたり削除せずに非表示にする方法 Mar 13, 2024 pm 07:19 PM

    WeChatの友達をブロックしたり削除したりせずに非表示にする方法は?友達を非表示にしたいが、その方法がわからないユーザーが多いため、このサイトでは、WeChat の友達をブロックしたり削除したりせずに非表示にする方法をユーザーに丁寧に紹介します。ブロックや削除せずに WeChat の友達を非表示にする方法 方法 1: 1. まず WeChat ソフトウェアを開き、WeChat ページでアドレス帳を見つけて、「マイ」をクリックします。 2. 次に、設定ページに入ります。 3. 「プライバシー」オプションを見つけてクリックします。 4. 次に、「彼に見せない」をクリックします。 5. [彼女に表示させない] ページに移動し、[+] をクリックして非表示にしたい友達にチェックを入れます。

    Oracle エラー 3114 の解釈: 原因と解決策 Oracle エラー 3114 の解釈: 原因と解決策 Mar 08, 2024 pm 03:42 PM

    タイトル: Oracle エラー 3114 の分析: 原因と解決策 Oracle データベースを使用すると、さまざまなエラー コードが頻繁に発生しますが、その中で比較的一般的なのはエラー 3114 です。このエラーには通常、データベース リンクの問題が関係しており、データベースへのアクセス時に例外が発生する可能性があります。この記事では、Oracle エラー 3114 を解釈し、その原因について説明し、エラーを解決するための具体的な方法と関連するコード例を示します。 1. エラー 3114 の定義 Oracle エラー 3114 パス

    Douyinショートビデオの作品を非表示にする方法 個人的なビデオ作品を非表示にする方法 Douyinショートビデオの作品を非表示にする方法 個人的なビデオ作品を非表示にする方法 Mar 12, 2024 pm 12:49 PM

    Douyinショートビデオアプリソフトには多数のショートビデオ作品が用意されており、好きなだけ視聴することができ、全て永久無料で提供されています。さまざまなタイプのライブビデオチャンネルがオープンしており、ビデオコンテンツはすべてオリジナルです。誰もが最も満足できる視聴方法を提供します。アカウントを入力してオンラインにログインすると、誰もが毎日視聴している動画に基づいて正確に推奨される、さまざまな刺激的なショートビデオがプッシュされます。また、生放送ルームに入ってアンカーと対話したりチャットしたりすることもできます。もっと幸せに。個人がアップロードした作品も非表示にすることができます。設定はワンクリックで非常に簡単です。スワイプするとどこからでも見ることができます。上下にスワイプすると、無数のネチズンのリアルタイムのコメントが表示されます。日常生活のダイナミクスを共有することもできます。編集者は詳細なオンライン Douyin ショート ビデオを公開しており、ユーザーは個人のビデオ作品を非表示にする方法を求めています。最初に公開された Douyin のショートビデオ

    WordPress バックエンドのコードの文字化けが心配ですか?これらの解決策を試してください WordPress バックエンドのコードの文字化けが心配ですか?これらの解決策を試してください Mar 05, 2024 pm 09:27 PM

    WordPress バックエンドのコードの文字化けが心配ですか?これらの解決策を試してください。具体的なコード例が必要です。Web サイト構築で WordPress が広く使用されるようになったことで、多くのユーザーが WordPress バックエンドでコードが文字化けする問題に遭遇する可能性があります。このような問題が発生すると、バックグラウンドの管理インターフェースが文字化けして表示され、ユーザーに多大な迷惑をかけてしまいます。この記事では、WordPress バックエンドでの文字化けのトラブルを解決するための一般的な解決策をいくつか紹介します。 wp-config.php ファイルを変更し、wp-config を開きます。

    See all articles