3

URL を次のようにしたい: index.php?/controller/view/argsではなくwww.domain.com/controller/view/args。実際、 「 index.php ?...」という URL を検証したくありません。A) redirect()またはB)手動で「index.php」と入力すると、"..." URL がその醜いパターンに変わります。

これは私の .htaccess ファイルです (このファイルが必要かどうかはわかりません。インターネットからコピーして貼り付けただけです):

#http://codeigniter.com/wiki/Godaddy_Installaton_Tips/

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

これは私のconfig.phpです:

$config['base_url'] = '';
$config['index_page'] = 'index.php?';
$config['uri_protocol'] = 'AUTO';
$config['enable_query_strings'] = FALSE;

そして、これが動作を変更するものです:

redirect('...blah', 'either location or refresh');
4

3 に答える 3

2

実際には、codeigniter ディレクトリのルート (index.php がある場所) に .htaccess ファイルが必要です。.htaccess ファイルは、パラメーターの書き換えを管理します。yoursite.com/?controller/model にクエリを実行すると、index.php があった場合と同じように機能します。"?controller/..." は引き続き存在しますが、常に index.php 以外のバージョンにリンクすることを忘れない限り、index.php は存在しません。含まれている .htaccess は、ほとんどの場合 (特に Apache の場合) 機能します。codeigniter がサイトのルート (つまり、public_html/somedir/{codeigniter_goes_here}) にない場合は、変更が必要になる場合があります。

于 2012-06-28T21:41:14.130 に答える
1

CI Wikiから:http://codeigniter.com/wiki/mod_rewrite/

于 2012-06-28T23:23:47.587 に答える
1

.htaccess を codeigniter インストールのルート (index.php と同じ場所) に配置する必要があることに加えて、mod_rewrite が Apache インストールで機能していることを確認する必要もあります。無視されるだけです。

さらに、Apache 仮想ホストで AllowOverride ディレクティブを設定する必要があります ( http://httpd.apache.org/docs/2.0/mod/core.html#allowoverrideを参照)。次のように設定する必要があります。

<VirtualHost *:80>
...
AllowOverride All
...
</VirtualHost>

以下も変更する必要があります。

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

に:

$config['index_page'] = '';
于 2012-06-28T21:54:29.107 に答える