2

UbuntuとApache2とCodeIgniterをベースにしたアプリケーションを開発しています

私はSiteこのような名前のコントローラーを持っています

class Site extends CI_Controller {
    public function view($page = 'home')
    {
        $this->load->view('site/'.$page, $data);
    }
}

application/views/site私が持っているhome.phpabout.php

localhost/index.php/aboutうまく機能します
localhost/about
Not Found,The requested URL /about was not found on this server.

私はすでにしました

  1. mod_rewriteオンになっていてAllowOverride All、apache2設定ファイルにあることを確認してください。
  2. $config['index_page'] = '';application/config/config.php

ルートも設定しました

$route['default_controller'] = "site/view";  
$route['404_override'] = '';   
$route['(:any)'] = "site/view/$1";

これが私の.htaccess

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

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

3 に答える 3

0

これは私が使用している.htaccessです(Yiiで、ただし交換可能である必要があります):

RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

あなたのものとほとんど同じ

于 2012-10-26T18:42:16.343 に答える
0

codeignitor pretty urlsに関するこのページをフォローしてみてください。あなたのルールは正しいように見えますが、私は正規表現が苦手です。

mod_rewrite が phpinfo(); を使用して利用可能かどうかを確認することを検討してください。また、そのリンクのステップ 3 では、a2enmod を使用して mod_rewrite を有効にする方法について説明しています。そして、必ずApacheを再起動してください。

于 2012-10-27T06:13:32.193 に答える
0

私のコードイグナイターのウェブサイトから。

<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>
于 2012-10-27T11:24:34.780 に答える