3

私はCodeigniterに関してこの問題を抱えていますが、残念ながら、このサイトの他の投稿は私を助けないか、うまく適用できませんでした。

編集*スクリーンショットを追加:

ここに画像の説明を入力してください

ここに画像の説明を入力してください

マイディレクトリ構造:

  • スケジューラー(メインフォルダー)
    • システム
      • 応用
        • config(フォルダー)
        • コントローラー(フォルダー)
          • BS.php
    • およびその他のフォルダとファイル
    • index.php

タイトルの通り、タイプすると

http://mysite.com/folder/index.php

見つからないページ404を出力します。しかし、http://mysite.com/scheduler/index.php/BSと入力すると、以下のコードを使用してエコーしたため、「これはBSファイルです」と表示されます。

BS.php

 function index($flag = NULL)
{

 echo "This is a BS File.";
 }

ルート.php

$route['default_controller'] = "BS";
$route['scaffolding_trigger'] = "";

index.php

error_reporting(E_ALL);

$system_folder = "system";

$application_folder = "application";

if (strpos($system_folder, '/') === FALSE)
{
    if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !== FALSE)
    {
        $system_folder = realpath(dirname(__FILE__)).'/'.$system_folder;
    }
}
else
{
    // Swap directory separators to Unix style for consistency
    $system_folder = str_replace("\\", "/", $system_folder); 
}

define('EXT', '.php');
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));
define('FCPATH', str_replace(SELF, '', __FILE__));
define('BASEPATH', $system_folder.'/');

if (is_dir($application_folder))
{
    define('APPPATH', $application_folder.'/');
}
else
{
    if ($application_folder == '')
    {
        $application_folder = 'application';
    }
    define('APPPATH', BASEPATH.$application_folder.'/');
}

require_once BASEPATH.'codeigniter/CodeIgniter'.EXT;

そして最後に、私のconfig.php

$config['base_url'] = "http://" . $_SERVER['HTTP_HOST']. "/scheduler/";
$config['secure_base_url'] = "https://" . $_SERVER['HTTP_HOST']. "/scheduler/";

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

$config['uri_protocol'] = "REQUEST_URI";

今何日もそれをやっていますが、まだ単一のプロセスが与えられていません。助けていただければ幸いです。

4

4 に答える 4

6

私はついにそれを行う方法を理解しました。上記の質問で示したように、ディレクトリ構造を覚えていますか?

Controllerフォルダーには、このBS.phpファイルがあります。次に、私が間違っていなかった場合、それはファイルの大文字と小文字の区別についてです。これはおそらく、このサイトの他の質問のいくつかの回答でそれについて読んだファイル名の大文字をサポートしていないドメインが原因です。

つまり、 BS.fileをbs.fileにしました。それはうまくいきました。

編集

また、routes.phpでBSをbsに変更しました。

于 2013-01-09T07:27:40.627 に答える
0

index.phpのコードを投稿したようです。あなたはそこで何も編集しないようにすべきなので、私はあなたの必要性を感じません。

ルートフォルダに.htaccessがありますか?

CIアプリケーションを開発するときはいつでも、この.htaccessファイルを常に手元に置いています。

http://pastebin.com/nTsThZHv

于 2013-01-08T03:37:10.813 に答える
0

index.phpファイルからコードを削除し、Webアプリケーションのルートディレクトリに.htaccessファイルを作成する必要があります。(つまり、アプリケーション、システムフォルダが存在します)。

それは私の繰り返しの答えです: ローカルホスト(XAMPP)のパスに関するCodeigniterの問題

プロジェクトフォルダに.htaccessファイルを作成し、次のように記述してください。

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ index.php?url=$1 [PT,L] 

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

構成ファイルのbase_urlで定義する必要はありません。

$config['base_url'] = ''; // blank it.
于 2013-01-08T04:51:19.123 に答える
0

私の場合、これはコントローラーのケースの問題ですが、@Brainの回答とは少し異なります。これは、「AxxxxBxxx.php」という名前のデフォルトのコントローラーを使用しているためです。私はいつも404エラーを受け取りました。「Axxxxbxxxx.php」に変更した後、対応するクラス名を変更します。できます。

ところで、私はcodeigniter3.0を使用しています。それが役に立てば幸い!

于 2015-06-03T11:35:05.433 に答える