2017-02-25 5 views
2

私はCodeIgniter URLの 'index.php'部分を削除するのに苦労しています。 私はCodeIgniterバージョン3.1.2を使用しています。私はこれについて他の質問にすべての手順に従ってきました:CodeIgniterのURLからindex.phpを削除する

  • 変更$config['index_page'] = 'index.php'$config['uri_protocol'] = 'AUTO'
  • を追加しました次のコードで私のプロジェクトのルートフォルダに.htaccessファイル$config['uri_protocol'] = 'REQUEST_URI'から
  • $config['index_page'] = ''に変更:

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

私は私のサイトにアクセスしようとすると、しかし、私が取得次のエラーコードを入力します。

要求されたURL/Toneel /サイト/インデックスは、このサーバー上に見つかりませんでした

が見つかりません。

私のApache Serverで書き換えモジュールが有効になっています。 誰もこの問題で私を助けてくれますか?

+0

ローカルホストで実行されているだけでRewriteBase /ときに、サーバーにコードをアップロードする際にRewriteEngine後でRewriteBase/your_project_nameを追加します。設定

は次のようにする必要があります。 – Omi

答えて

4

この設定は、私のために働きました。

$config['base_url'] = ''; 
$config['index_page'] = ''; 
$config['uri_protocol'] = 'REQUEST_URI'; 

の.htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    #RewriteBase/

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [QSA,L] 
</IfModule> 

は、編集や

AllowOverride All 

/apache2.confファイルを変更し、サーバーを再起動する必要がApacheの設定でオーバーライドhtaccessファイルを許可します。

+0

私はAllowOverrideがすべて問題だと思います。私はそれをAllに変更し、エラーは「Not Found」から「Forbidden」に変更されました。 このサーバの/ Toneel/Site/indexにアクセスする権限がありません。 – Yaniiick

+0

私のApacheのエラーログには、次のような内容が書いてあります: 'FollowSymLinksとSymLinksIfOwnerMatchの両方のオプションがオフになっているので、RewriteRuleディレクティブはディレクトリの制限を迂回する同様の機能のため禁止されています ' – Yaniiick

+0

どのオペレーティングシステムを使用していますか? – Goran

1

は.htaac​​essにこのコードを試してみてください。

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

あなたの答えをありがとうが、このコードは同じエラー結果を返します。私が見つけたすべての可能な.htaccessコードについて試してみたが、書き換えモジュールをオンにしたあとで – Yaniiick

+0

が動作しなかった@Yaniiickサーバーを再起動しましたか? –

0

私の場合は

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

あなたの.htaccessファイルでこれを試してみてください、それはで動作します:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /project-name 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [QSA,L] 
</IfModule> 

**重要、これはあなたのルートに.htaccessファイルにする必要がありますプロジェクト。

$config['base_url'] = 'http://your-url-here/'; 
$config['index_page'] = ''; 
関連する問題