2

作成した htaccess が正常に実行されません。なぜですか?

私のhtaccessがあります

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
php_value memory_limit "64M" 
</IfModule> 

およびインデックスページの構成

$config['index_page'] = '';

しかし、まだ404ページが見つかりません

http://hostname/blog <=== 404 page not found
http://hostname/index.php/blog <=== normal page show up
4

3 に答える 3

1
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

次のようにする必要があります。

RewriteRule ^(.*)$ /index.php/$1 [L]

http://ellislab.com/codeigniter/user-guide/general/urls.htmlおよび「index.php ファイルの削除」というタイトルのセクションを参照してください。同じ RewriteRule を使用する必要がありますが、RewriteConds は問題ありません。

于 2012-12-01T07:04:49.983 に答える
0
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

これは、index.php ファイルを削除するための Codeigniter のユーザー ガイドに記載されている標準的な内容であり、追加のルールを追加できます。

于 2012-12-01T14:41:36.957 に答える
0

index.php ファイルと一緒に、.htaccess ファイルをアプリケーションのルート ディレクトリに配置します。(htaccess 拡張子が正しいかどうかを確認してください。Bz htaccess.txt は機能しませんでした。)

そして、次のルールを .htaccess ファイルに追加します。

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

次に、application/config/config.php ファイルで次の行を見つけます。

$config['index_page'] = 'index.php';

以下のように変数を空に設定します。

$config['index_page'] = '';

それだけです、それは私のために働きました。

さらにうまくいかない場合は、次の変数をこれらのパラメータ ('AUTO'、'PATH_INFO'、'QUERY_STRING'、'REQUEST_URI'、および 'ORIG_PATH_INFO') で 1 つずつ置き換えてみてください。

$config['uri_protocol'] = 'AUTO';
于 2012-12-01T11:48:03.353 に答える