2011-09-15 3 views
0

/controller/methodからindex.php?/ controller/methodに行くために私のURLを書き直そうとしています。いくつかの経路設定がありますが、フォームは再経路指定されていないURLにも壊れています。ここで少しの文脈があります。フォームがCodeIgniterで壊れている

index.phpをウェブルートとは別のWebフォルダに移動しました。アプリケーションファイルを公開する機会はありません。これがこの問題を引き起こすかどうかはわかりませんが、私のインストールについては少し珍しいことです。

+ codeigniter/ 
    + application/ 
    - models, views, etc 
    + system/ 
    + web/ 
    - .htaccess 
    - index.php 
    - css, javascript, images, etc 

私の.htaccessファイルは非常に単純です:私のディレクトリ構造は次のようになります

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

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

これは、Windows用のXAMPP上で正常に動作するようですが、それは基本的なUbuntuのLAMPスタックに壊れています。フォームを送信すると何も起こりません。フォームがロードするページですが、フォームがサブミットされていないかのようです。

申し訳ありませんが、もう1つ重要な情報:index.phpをそこに残しておけば、URLは/index.php/contacts/edit/1のようになります。

これ以上の情報を提供できるかどうか教えてください。ありがとう!

+0

「何も起こりません」ともう少し説明してください。空白ページ?画面上のエラー?同じページを再読み込みしますか? @マイケル編集。 –

+0

起こることはそれほど多くないか、より効果的にデバッグすることができます。私は他の誰かが似たようなことを見たことを期待していました。もちろん、エラー報告はオンになっています。 – theazureshadow

+0

ルーティングで何が起こっているのかはっきりしていませんが、フォームが送信されるメソッドでprint_r($ _ POST)を実行するとどうなりますか? – stef

答えて

0

含まれていない.htaccessの一部が原因で、エラーが見つからないことが判明しました。

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

私はそれがそのブロックに到達した場合、これはCodeIgniterのエラーページを表示することを想定していたが、それは結局のところCodeIgniterのは果敢から、$_SERVERにパスを見て、状況を救済しようとしていたことを(私は仮定します)それはそれが表示されるはずだったページを得ることができました。しかし、パスは存在しなかったので、$ _POSTデータのどれもそれを作成しませんでした。エラーログで私はこの行を見ていました:

[error] File does not exist: /path/to/web/contacts/edit/1 

mod_rewriteを有効にすると問題が解決しました。

関連する問題