2011-10-24 27 views
0

私はcodeigniterアプリを持っていて、私はURIからindex.phpを削除したかったのです。 codeigniter wikiからこのスクリプトを使用しました。URLをcodeigniterアプリの.htaccessに書き直し

設定を変更すると機能が停止しました。この変更後、すべてのURLはホームページのみを返しました。どんなリンクを使っても、それは私のサイトのホームページだけを提供します。だから私はそれをindex.phpに戻しましたが、サーバは同じように動作します。 .htacessファイルを完全に削除しようとしましたが、実際には動作しますが、同じ方法で動作する新しいもので更新してみました。 (すべてのURLはホームページにリダイレクトされました)私のスクリプトやサーバーで何が問題なのか、まったく手がかりがありません。

P.S:.htacessを使用すると、$ config ["index"]を空白にしました。 UPDATE

は今、私は私の.htaccessファイルから他のすべてを削除し、私は唯一の重要な一部である、これはさえ、これらのみで、URIセグメント

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

からのindex.phpを削除する必要がありますすべての私URLは私をホームページに連れて行っています。私は何が起こっているのかは分かりません。

+0

サーバープラットフォームとは何ですか? config.phpの 'uri_protocol'設定を変更しようとしましたか?また、そこに何かがある場合、routes.phpを表示することを傷つけることはありません。 –

答えて

1

の値は変更してみてください:まだない場合は

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

:に

$config['uri_protocol'] = 'AUTO';

を働いて、残りを試してオプション(PATH_INFO、QUERY_STRING、ORIG_PATH_INFO)。

0

あなたのErrorDocument行は、<IfModule !mod_rewrite.c>の中にあります。mod_rewriteモジュールがインストールされていないようです。 (そうした場合、その行は無視されます)。ErrorDocument 404 /index.php行は、存在しないファイルが要求された場合に/index.phpファイルにアクセスするためのハックです。

CodeIgnitorで404ページを設定するには、routes.phpファイルを編集する必要があります。 /設定/ config.phpをあなたのアプリで

$route['404_override'] = 'general/not_found'; 

More details.

+0

私はすでにそれをしました。私はすでにそこにそれを置いた。また、私は確かにmod_rewriteがインストールされている、私は設定をチェックし、もしあなたが逃していた場合、このことは私がいくつかの設定を変更するまで働いて、それを元に戻した。 – swordfish

+0

ErrorDocument行を変更しても何の効果もない場合は、mod_rewriteモジュールが正しくインストールされていません。 – AndrewR

+0

また、書き換えルールが正常に動作している場合は、ErrorDocument行を作成する必要はありません。 '!-d'と'!-f'をチェックする2つのrewritecond行は、ファイルシステム上に存在しないリクエストと一致します。 – AndrewR

関連する問題