2016-05-30 7 views
3

Wordpress(WP)とのCodeIgniter(CI)統合があります。何週間もの努力の結果、最終的にはローカルのXAMPで統合が行われています。codeigniterはローカルのxampp上で問題なく動作しますが、すべてのカスタムコントローラ用のApache Webサーバー上の404

同じ構造をserver/production環境に移したとき、CIとWPの統合はまだOKです(私はCIのデフォルトコントローラが/welcome/index.phpを動作させるのでこれを言います)が、他のカスタムコントローラを使用するとただ404を取得する。

私は、1.tweaking .htaccessのような私のGoogle検索の努力に基づいて多くのオプションを試しています。設定ファイルの変更3.ルートファイルへの変更と私のために働く解決法はありません。私は誰かがこれに対する解決策を持っていることを期待しています。読んでいただきありがとうございます。

サイトの構造:

Site Root 
- All WP files 
- .htaccess 
- CI folder - contains all CI files 
-- .htaccess 

WPの.htaccessの

RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

CIの.htaccess

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

CIの設定ファイル

$config['base_url'] = 'http://mysitecom/ci/'; 

ローカルのURL:

http://localhost/ci/ --> works and gives me default Welcome index page 
http://localhost/ci/book/ --> works and gives me right page 

ApacheサーバのURL:

http://mysitecom/ci/ --> works and gives me default Welcome index page 
http://mysitecom/ci/book/ --> Does NOT work and gives me 404 error 

それの一体のために、私はデフォルトとして「ブック」を強制することができるかどうかを確認するために、以下を試してみましたが、それはまだ私に404を与えましたhttp://mysitecom/ci/ブック/

$route['default_controller'] = 'book'; 

わからないため、なぜApacheのウェブSERのデフォルトのCIコントローラの作品ではなく、カスタムコントローラver。私は何かを逃しているかもしれませんが、何が分からないのでしょう.htaccessの

RewriteBase/

+1

あなたのコントローラはファイル名とクラスの最初の文字のみ大文字にしていることを確認しましたか? – user4419336

+0

大きなポインタとそれは確かに問題でした。私は、コントローラとモデルクラスの両方のクラスとファイル名のために今大文字を使用しました。その解決策は私の404を解決しましたが、現在は何もエラーのない空白の画面が表示されています。すべてのログファイルをチェックし、 '要求が構成エラーの可能性があるため内部リダイレクトの上限10を超えました'以外のヒントはありません。 – bizready

答えて

0
私は、あなたが設定にミスマッチを持って気づいた何

と.htaccess

$config['base_url'] = 'http://mysitecom/ci/'; 

これはhttp://mysitecom/

あるウェブサイトのルートを指し、しかし、実際のアプリケーションが実行中ですhttp://mysitecom/ci/

だから、

RewriteBase /ci/ 

もう一つの分野でそれを交換して、ファイル名には、必ずすべてのコントローラ名は大文字で始めてくださいです。例えば

私のコントローラがAdminであるならば、ファイル名はAdmin.phpすべきであり、あなたが

class Admin extends CI_Controller{ 
    --Code here--- 
} 
0

のように宣言する必要があり、あなたはワードプレスでCodeIgniterのを統合するhttps://www.cometchat.com/blog/how-to-integrate-codeigniter-with-wordpress/でガイドラインに従っていましたか?ポイント1(WordPressブートストラップファイルを追加する)が最も重要です。私の場合は

、私のroutes.phpファイルは次のようになります。

$route['(?i)bookings/(:any)'] = 'bookings/$1'; 
$route['(?i)bookings'] = 'bookings'; 
$route['(?i)(:any)'] = 'bookings/index/$1'; 
$route['default_controller'] = 'bookings/index'; 

予約は私の予約システムの責任があるコントローラ、です。それは生産中ですhttps://eventsol.es/transfers/

関連する問題