CIフレームワークを使用してURL内のindex.phpを削除する方法の究極の解決策

WBOY
リリース: 2016-06-13 12:04:13
オリジナル
1129 人が閲覧しました

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート