1

CodeIgniter 2.0 のかなり新しいインストールに取り組んでいます。

このコードを含むhtaccessファイルがあります

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

URL http://www.estiem.no/ESTIEM/CI/へのアクセスは機能しますが、http://www.estiem.no/ESTIEM/CI/site/indexは機能しません。404 が返されます。コントローラ サイトが存在し、メソッド「index」が含まれています。

何が間違っているのでしょうか?

4

4 に答える 4

0

index.php から / を削除する必要があります

RewriteRule ^(.*)$ index.php/$1 [L]
于 2011-03-07T18:00:08.497 に答える
0

これは htaccess の問題です。誰もがそのコードを回したときに、多くのホストがそれを気に入らず、? でハッキングできることがわかりました。または、これまたはあれがジグソーパズルのように見えるようになるまで(その状態です)、素晴らしいhtaccessを使用します(最初の人が誰であるかはわかりませんが、500のように信用を得ています)二度と変更する必要はありません(まあ、決してただし、編集されていない場合は 99% 動作します):

# Customized error messages.
ErrorDocument 404 /index.php

# Set the default handler.
DirectoryIndex index.php

# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>  

私は同じ問題を抱えていて、ここやCI wikiに来るべきだったときにGoogleで何時間も費やしていることを信じてください(それは私が最初に見た場所なので)、それだけでCIでどれだけ多くの問題が解決されるか信じられないでしょうhtaccessのビット。彼らは本当にそれをレポに追加する必要があります。

于 2011-04-09T02:48:27.163 に答える
0

.htaccessサブフォルダーに CI をインストールしているため、書き直しでそれを考慮する必要があることに気付きました。

/エスティエム/CI/

だからあなたは次の.htaccessようになります:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /ESTIEM/CI/index.php/$1 [L]

これで修正されるはずです(@BrianOrtizのコメントにより、編集が遅れて申し訳ありません)

于 2011-03-07T18:02:44.677 に答える
0

コントローラーにアクセスしてみてください: localhost/site/ index.php /controller

CI で大文字と小文字が区別されるため、それが機能しない場合

  • localhost/サイト/controller == c:...\site\controller.php
  • localhost/ SITE /controller == c:...\SITE\controller.php

そうしないと

<?php

controller Mycontroller extends Controller {

}

?>

mycontroller.phpcontrollers フォルダーに名前が付けられます


他のすべてが失敗した場合は、htaccess を次のように置き換えます。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
于 2014-07-22T12:59:57.087 に答える