7

私のディレクトリ構造は /var/www/CI/ で、CI フォルダーの下にすべてのフォルダー (つまり、アプリケーション、システム) があります。CI の下に .htaccess ファイルを作成しました。

以下は、.htacess のコードです。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|public|images|robots\.txt|css)
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

まだ localhost/CI/blog で 404 エラーが発生します。このルールがどこで間違っているかについて誰かが導くことができますか?

4

7 に答える 7

26

以下をお試しください

最初に、次のように設定ファイルを設定してください。

$config['index_page'] = '';

また、httpd.conf ファイルでmod_rewriteが有効になっていることを確認してから、アプリケーション フォルダーではなくプロジェクトのルート フォルダーにある .htaccess ファイルを次のコードで上書きします。

RewriteEngine on
RewriteCond $1 !^(index\.php|public|\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1
于 2013-01-13T08:22:48.277 に答える
3

application/config/config.phpファイルで、これが次のように設定されていることを確認してください。

$config['index_page'] = '';

これも行います:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^CI/(index\.php|public|images|robots\.txt|css)
    RewriteRule ^CI/(.*)$ CI/index.php/$1 [L]
</IfModule>

通常、CI を独自のディレクトリに配置せずapplicationsystemルート フォルダーに配置します。

于 2013-01-12T20:51:28.810 に答える
3

上書きが許可されているように、Apache の構成を確認してください。AllowOverrideが に設定されている場合None、書き換えは機能しません。

httpd.conf以下を(.htaccessではなく)に追加すると、問題が解決するはずです

<Directory "/">
    AllowOverride All
</Directory>

それでもうまくいかない場合はお知らせください。

于 2013-01-13T02:07:16.343 に答える
1

これは機能します。ただし、 mod_rewriteが有効になっていることを確認してください。

  1. Apache のインストール フォルダー内のフォルダーのhttpd.conf下にあるファイルを見つけます。C:\wamp\bin\apache\apache2.4.9\conf
  2. ファイルで次の行#LoadModule rewrite_module modules/mod_rewrite.soを見つけhttpd.confます。これは、キーワード「mod_rewrite」を検索することで簡単に実行できます。
  3. 行頭の を削除し、#その#行がコメント化されていることを表します。
  4. 次に、Apache サーバーを再起動します
  5. mod_rewrite実行中にロードされたモジュールのセクションに表示されるようになりましたphpinfo()
于 2015-05-04T10:39:38.860 に答える
1

次の手順を使用します。 1. ドキュメント ルート [ ]
に .htaccess ファイルを作成します。 2. で構成ファイルを開き、次の操作を行います。myroot_folder/.htaccess
application/config/config.php

$config['index_page'] = '';

に変更されている 場合はindex.php、ベース URL から削除します
$config['base_url']= 'http://localhost/myroot_folder/index.php';
$config['base_url']= 'http://localhost/myroot_folder/';

ファイルを開き、.htaccess次のコード ブロックを追加します。

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
于 2013-12-07T17:03:54.467 に答える
0

1).htaccessファイルを作成し、このコードを配置します。

  RewriteEngine on
  RewriteCond $1 !^(index\.php|resources|robots\.txt)
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

2) 変更:

 $config['index_page'] = ''; 
 remove index.php present in config.php file

3) サーバーから書き換える

于 2018-01-29T10:01:43.143 に答える
-1

すべての作業を行っていない場合は、これを試してください。

/etc/apache2/sites-available/defaultの仮想ホスト ファイルで、AllowOverride NoneAllowOverride Allに変更します。

詳細はこちら

于 2015-04-10T22:11:41.377 に答える