1

私はCI初心者です。この間ずっと、ローカルホストで最近のプロジェクトを行っています。データベースフレームワークとしてCodeIgniterとDoctrineを選択しました。

私のローカルホストの仕様は次のとおりです。

Windows 7 Wampserver 2.0

また、apacheでrewrite_moduleを有効にしています。

最初から、ローカルホスト上のCIとDoctrineですべてが正常に機能していました。私はなんとかプロジェクトを完了し、最初のプロジェクトをライブで移植して、それを私のbluehostアカウントのサブディレクトリにアップロードするのを喜んで待っていました。

ファイルを転送する前に、必要な値を入力してconfig.phpとdatabase.phpを変更しました。

しかし、ファイルを(.htaccessとともに)ホスティングソリューションプロバイダーにアップロードした後、404エラーしか表示されませんでした(これはcodeigniterクラスからのものであり、ホスティングソリューションページからのものではありません)。私はこれを取得し続けます。複数のオプションを試しましたが、これが何であるかを理解できません。index.phpが呼び出されていると確信しており、デフォルトのコントローラー(私の場合は「home」)にルーティングしようとすると、何らかの理由で失敗します。

ローカルホストのディレクトリ構造

PathtoWamp-> www-> mysitefolder

私のライブサイトのディレクトリ構造

public_html(これは私のルートフォルダです)-> mysitefolder

また、ライブサーバーでrewrite_moduleが有効になっていることもわかりました(これは、私のホスティングソリューションのbluehostが言っていることであり、これは本当だと思います)

締め切りをかなり過ぎているので、解決策を考えています。何かアイデアがあれば教えてください。

前もって感謝します。

よろしく、アショクスリニバサン。

4

2 に答える 2

1

問題の根本を突き止めました。この間ずっと、それは.htaccessでも、httpd.confでも、bluehostでもありませんでした。それは誰でもない神ではなく、本当の犯人はMr.CodeIgniterでした。

system / libraries内にあるRouter.phpを見ると、88番の行が見つかります。

$this->default_controller = ( ! isset($this->routes['default_controller']) OR $this->routes['default_controller'] == '') ? FALSE : strtolower($this->routes['default_controller']);

ターナリの終わりに気付いた場合、それらはコントローラ名に対してstrtolower操作を強制しています。そのメソッドを削除し、行をthisに変更することで、この時点で元の名前を使用できるようにしました。

$this->default_controller = ( ! isset($this->routes['default_controller']) OR $this->routes['default_controller'] == '') ? FALSE : $this->routes['default_controller'];

わかりましたが、ここで大したことは何ですか?はい、これは今のところ非常に理にかなっています。私のローカルサーバーはWindowsにインストールされており、本番サーバーはUnixボックスでホストされていました。Windowsは大文字と小文字の区別をあまり気にしないソフトな人であることが非常によく知られているので、Unixはそれどころか非常に特別です。

私のプロジェクトのコントローラー名はすべて大文字モードでしたが、実際の問題はここから発生しました。また、application / configにあるroutes.phpにアクセスして、この観点の問題を修正しました。

ついに私は自分のサイトをホストできるようになりました。私の質問を読んだ後、これに頭を悩ませてくれたすべての人に感謝します。

よろしく、

アショク・スリニヴァサン。

于 2011-05-18T11:07:16.850 に答える
0

私はあなたのhttpd.confで同じ問題を抱えていました

このような行を見つける必要があります

<Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
</Directory>

に変更します

<Directory />
    Options Indexes FollowSymLinks
    AllowOverride All
</Directory>

それが私にかかったすべてです

于 2011-05-18T04:27:30.733 に答える