2017-11-19 4 views
0

CI3.0 URLからindex.phpを削除する方法についての別のご質問があります。しかし、404codeigniter 3はindex.phpを削除した後に他のページにアクセスできません

デフォルトページを投げる - domain.com/about.php <:後domain.com/index.php/about.php :すべては今、前に404

URLを投げる他のページを除いて正常に動作しますまだ、とすぐに私は別のページに移動しようとして、404 ...

に動作しますが、コントローラー:

<?php 
class Pages extends CI_Controller 
{ 

    public function view($page = 'home') 
    { 

     if (! file_exists(APPPATH.'views/pages/'.$page.'.php')) { 

      show_404(); 

     } 

     $data['title'] = ucfirst($page); 

     $this->load->helper('url'); 
     $this->load->view('templates/header', $data); 
     $this->load->view('pages/'.$page, $data); 
     $this->load->view('templates/footer', $data); 

    } 

} 

ルーター:

$route['default_controller'] = 'pages/view'; 
$route['about'] = 'pages/view/about'; 
$route['(:any)'] = 'pages/view/$1'; 
$route['404_override'] = ''; 
$route['translate_uri_dashes'] = FALSE; 

設定:

$config['index_page'] = ''; 

.htaccessファイル:

<IfModule authz_core_module> 
    Require all denied 
</IfModule> 
<IfModule !authz_core_module> 
    Deny from all 
</IfModule> 

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

ドメイン名/ドメイン名(末尾に.phpはありません) – TimBrownlaw

+0

と同じ結果が表示されます。 404 – Sqveeze

+0

あなたは今までにこの問題を解決したはずです...もしあなたがecho APPPATHを置くなら、'views/pages /'.$ページ。 '。php';あなたのビューメソッドの最初の行として、あなたのshow_error()をコメントアウトしてください。何を手に入れますか?その実際のパスとファイル名は何ですか? – TimBrownlaw

答えて

0

右CodeIgniterの3を使用しての第一日から、私は次の.htaccessファイルを使用してきましたindex.phpを削除します。私はURLを発行したことはなかった。私はこれがあなたを助けることができると感じます。

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

私はmod_rewriteの上の完全な知識を持っていないのに、何の問題もなく動作しているオンライン多くのプロジェクトをしました。あなたがUbuntuの上にある場合には

+0

私はこのコードは良いと思っていますが、これを何らかの形で追加した後でも、index.phpのURLはまだ動作していて、index.phpを使わないURLを試してみると、デフォルトのブラウザの404ページも表示されません。 – Sqveeze

+0

'index.php'で問題なく動作するなら、それは絶対にうまくいきます。主な動機はURLから 'index.php'を削除することです。 URLを作成しているときには使用しないでください。 (http://iamgoodatcoding.com/controller/function) – Prabhu

+0

ブラウザのデフォルト404ページを取得している場合、何か不足しています。コントローラ名と機能名を確認してください。 – Prabhu

0

、ファイル/etc/apache2/apache2.conf(ここでは、我々はの/ var/WWWの例を持っている)編集:

<Directory /var/www/> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Require all granted 
</Directory> 

をし、それを変更。その後

<Directory /var/www/> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Require all granted 
</Directory> 

sudo a2enmod rewrite 

は、私はそれが行わだと思うApacheのservser

sudo service apache2 restart 

再起動します。

関連する問題