1

コントローラーフォルダーにコントローラーがあり、サブフォルダーにコントローラーがある場合、URLから「index.php」を削除するにはどうすればよいですか?たとえば、フロントエンドのURLは次のようになります:domain.com/site/contact.html バックエンドのURLは次のようになります:domain.com/system/settings/profile.htmlここで、システムはコントローラーではなく、サブフォルダーのみですコントローラフォルダにあります。domain.com/index.php/system/settings/profile.htmlと入力すると、すべてが正常に機能し、正しく表示されません。これが私のroutes.phpファイルの内容です:

$route['default_controller'] = "site";
$route['system'] = "system/login";
$route['404_override'] = 'errors/error_404';

これが私の.htaccessファイルの内容です。

RewriteEngine on
RewriteCond $1    !^(index\.php|img|css|public|tmp|download|javascript|rte|document|xajax_js|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

ありがとう。

4

4 に答える 4

1

index.php を削除するため

プロジェクトのルート フォルダーに .htaccess ファイルを作成し、次のコードを記述します。

<IfModule mod_rewrite.c>

RewriteEngine On

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

</IfModule>

保存します。

URl から index.php を削除してお楽しみください。.htacess はローカル マシンでは実行されないことに注意してください。

于 2012-08-13T09:35:19.077 に答える
1

URL から index.php を削除するには、最初に mod_rewrite が apache で有効になっていることを確認してから、これを .htaccess ファイルに追加します。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

.htaccess ファイルで、.htaccess ファイルを index.php の場所の近くに移動します。

/var/www/CodeIgniter/index.php
/var/www/CodeIgniter/.htaccess

config.php 内の config フォルダー セット内

$config['index_page'] = '';
于 2012-11-05T06:38:22.480 に答える
0

またはRewriteBaseのように設定してみてくださいRewriteBase /RewriteBase /site/

于 2012-08-13T08:36:10.633 に答える
0

私の問題は、routes.php ファイルの予約済みコントローラー名でした。

$route['system'] = "system/login";

ルート フォルダに「system」というフォルダがあるため、サブフォルダに「system」という名前を付けることはできません。

于 2012-11-27T02:01:18.983 に答える