1

CodeIgniter アプリケーションにはiloginと の 3 つのコントローラーがありtestます。

すべてのコントローラーはパスで完全に動作し/APP/index.php/ます-私は開くことができます/APP/index.php/i/APP/index.php/loginそして/APP/index.php/test.

コントローラーなしでも動作します-iそして(私は変更されたファイルを持っています)。loginindex.php/APP/i/APP/login.htaccess

コントローラーがないとtest動作しませんindex.php- 開くと 404 エラーが発生します/APP/test

iはデフォルトのコントローラーですが、デフォルトでloginはなく、機能します(問題になる可能性があると思いました)。

4番目のコントローラーを追加したとき、それもなしでは機能しませんでしたindex.php

それはさらに奇妙になります-時々私は開くことができます/APP/test/some_function(そして時々私はできません)そしてこの後私は開くことさえできます/APP/test. しかし、その後、この方法で再び開くことはできません。index.php方法は常に機能します。Testコントローラーのコードは非常に単純です...

だから私の質問は、ここで何がうまくいかない可能性があり、コントローラなしでアクセスできるようにするにはどうすればよいindex.phpですか?

ご助力ありがとうございます。

以下は私の.htaccessファイルです。問題があると思います:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /APP/

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ index.php?/$1 [L]

RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ index.php?/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>
4

1 に答える 1

0

@w0rldart の提案のおかげで、問題の場所がわかりました。

実際、index.phpファイルなしでコントローラーにアクセスすると、メインのアプリケーションフォルダーは大文字と小文字が区別されます(APP私の質問では)。

アプリケーション フォルダ名がはるかに長く、大文字と小文字の両方が含まれているため、大文字と小文字を間違えて 1 文字だけ入力してしまいました。デフォルトのコントローラーの場合は問題ではなく、大文字と小文字が正しいリンクを介して他のコントローラーにアクセスしました。

そして、test直接アクセスされたように、この間違ったケースは私に 404 エラーを与えていました.

パス経由index.phpでは、メイン アプリケーション フォルダーの大文字と小文字は関係ありません。

于 2012-11-15T23:54:52.737 に答える