CI フレームワークが URL 内のindex.php を削除するための究極のソリューション
動的 Web ページ技術を使用して生成されたテクノロジーのほとんどには、ルーティングの混乱を引き起こすことなく、URL 内の inde.php を効果的に削除することで Web ページのアドレスを作成できます。以下は CI フレームワークに関するものですが、その実装原則から判断すると、他の状況でも同様の問題を解決するのに非常に参考になります。
公式ソリューション
デフォルトでは、インデックスは.php ファイルが URL に含まれます:
example.com/index.php/news/article/my_article
.htaccess ファイルを渡して、簡単なルールを設定して削除できます。 。以下は、「ネガティブ」メソッドを使用して、指定されていないコンテンツをリダイレクトする例です:
RewriteEngine on
RewriteCond $1 !^(index.php|images|robots.txt)
RewriteRule ^ ( .*)$ /index.php/$1 [L]
注: プロジェクトがルート ディレクトリにない場合は、上記の文を次のように変更してください: RewriteRule ^(.*)$index.php/ $1 [L ]
上記の例では、index.php、images、robots.txt 以外の HTTP リクエストは、index.php に送信できます。
私の究極の解決策
しかし、実際には、上記の解決策は Apache 環境で実行されているサーバーにのみ適用でき、CI プログラムが非環境にある場合には十分な汎用性がありません。ルート ディレクトリまたはルート ディレクトリが一部の仮想ホスト上にある場合、上記の解決策では「404 エラー」または「入力ファイルが指定されていません」などのエラーが発生します。Baidu は、関連する問題の解決策を参照した結果、汎用的で効果的な削除方法を見つけました。 URL パスの Index.php のメソッドのコード リファレンスは次のとおりです。
index がルート ディレクトリにある場合、index.php が存在するルート ディレクトリに新しい .htaccess ファイルを作成できます。
RewriteEngine on
RewriteCond $1 !^(index.php|robots.txt)
RewriteRule ^(.*)$ /index.php?/$1 [ L]
index.php が存在しない場合 ルート ディレクトリで、index.php が存在するディレクトリに新しい .htaccess ファイルを作成し、次のコードを使用できます:
RewriteEngine on
RewriteCond $1 !^(index.php|images|robots.txtl)
RewriteRule ^(.*)$ /path_to_app/index.php?/$1 [L]
path_to_app を置き換えてくださいディレクトリのツール サブフォルダーに、index.php ファイルが配置されているディレクトリを指定します。
RewriteEngine on
RewriteCond $1 !^(index.php|images|robots.txtl)
RewriteRule ^(.*)$ / tools/index.php?/$1 [L]
上記の解決策は、 Apache環境でURL内のindex.phpを効果的に削除する方法の問題。他にご質問がある場合は、コメントするかメッセージを残して有効な連絡先情報を残してください。解決できるよう努めてお知らせします。
また、IIS 環境で URL 内の Index.php を効果的に削除する方法については、次の記事を参照してください:
IIS7.5 では、index.php Web を削除します。 config 構成ファイル
-----解決策---------
私は CI フレームワークを初めて使用します。どこから始めればいいのかわかりません。
------解決策------------------
プロジェクトを実行するのが一番早い方法で、本を読んでも無駄です
-----解決策--------------------------
色々な方法を見つけましたが、しかし、どれも要点に達していませんでした。元の投稿者のおかげで、すぐに解決しました
-----解決策------ ---
-----解決策---------------------- -------
これを変更しました。非常に簡単です。アプリで /config/config.php を見つけます。
この段落を変更します
$config['index_page'] = 'index.php'; to $config['index_page' ] = '';
URL 転送はフレームワークで行われているため、.htaccess