0

CI アプリの URL から index.php を削除するのに問題があります。こちらの公式ドキュメントに従いましたが、まだ何かが足りないようです。CI アプリをセットアップし、サーバーの /var/www/test に配置しました。ここで、test は /home/user/websites/test を指すシンボリック リンクです。私がそうすればすべてがうまくいっていますhttp://myIp/test/index.php/welcomeが、私がそうすればうまくいきますhttp://myIp/test/welcome。以下を含む .htaccess をテスト フォルダーに含めました。

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

また、成功せずに RewriteBase プロパティで遊んだ。私は何が間違っているか、欠けていますか?

4

5 に答える 5

1

以下を.htaccessに入れます

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

<Files "index.php">
AcceptPathInfo On
</Files>

このファイルをアプリケーション フォルダとシステム フォルダの外の index.php の近くに置き、その近くに $config['index_page'] = ''; と書くことを忘れないでください。$config['index_page'] = 'index.php'; の代わりに

于 2014-01-17T23:42:40.013 に答える
0

書き換えルールが正しくありません (またはせいぜい間違っています)。次のようにする必要があります

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

[L]フラグは、RewriteRuleこれ以上ルールを処理する必要がなく、ルールをすぐに適用する必要があることを apache に示します。詳細については、L フラグに関する apache のドキュメントを参照してください。あなたの場合、vhost ファイルにルールを直接適用する代わりにシンボリックリンクとファイルを使用しているため、これは重要です.htaccess。これは、この場合と .htaccess が遅い場合に強く推奨されます。

于 2013-11-10T23:29:29.850 に答える
0

を開きapplication/config/config.php、変更する

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

$config['index_page'] = '';
于 2013-11-10T21:15:26.257 に答える
0

質問が正しければ、リンクを機能させ、URL から「index.php」を削除してください。次の手順に従って、問題が解決するかどうかをお知らせください。

1)configディレクトリにあるconfig.phpから「index.php」を削除して、次のようにします$config['index_page'] = '';

2) これを .htaccess ファイルに追加します

DirectoryIndex index.php
RewriteEngine on

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

疑問や問題がある場合はお知らせください。お役に立てば幸いです。

よろしく、ジーシャン。

于 2013-11-11T06:05:35.120 に答える