2017-06-08 8 views
0

私は1つのWebサイトを持っていますが、それは/ home4/username/public_html/mainにあるwww.main.comというサーバーにあります。このサイトではPhalcon PHPが全く問題なく動作しています。Phalcon PHPがサブドメイン用にルーティングされていない

私はサブドメインを作りました。これをtest.main.comと名付けて、cPanelを使用してサブドメインのルートを/ home4/username/testsite/testに設定しました。これが問題の原因です。

/public_htmlの及び/テストサイトの両方が、次を含む、独自の.htaccessファイルを持っている:

テストサイト:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ test/public/ [L] 
    RewriteRule ((?s).*) test/public/$1 [L] 
</IfModule> 

メインサイト:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ main/public/ [L] 
    RewriteRule ((?s).*) main/public/$1 [L] 
</IfModule> 

、ローカルテストサイトをテストしますXAMPPを使ってうまく動作します(現在、非常に単純なPhalconのテストページです)。私は、サーバーphalconエラーのために正確に同じサイトをアップロードするときしかし: PhalconException: IndexController handler class cannot be loaded

(非稼働)テストサブドメインのサイトのディスパッチindex.phpファイルには、次のものが含まれています

今、この
<?php 

try { 
    //Register an autoloader 
    $loader = new \Phalcon\Loader(); 
    $loader->registerDirs(array(
     '../app/controllers/', 
     '../app/models/' 
    ))->register(); 

    //Create a DI 
    $di = new Phalcon\DI\FactoryDefault(); 

    //Setup the view component 
    $di->set('view', function(){ 
     $view = new \Phalcon\Mvc\View(); 
     $view->setViewsDir('../app/views/'); 
     return $view; 
    }); 

    //Setup a base URI 
    $di->set('url', function(){ 
     $url = new \Phalcon\Mvc\Url(); 
     $url->setBaseUri('/test/'); 
     return $url; 
    }); 

    //Handle the request 
    $application = new \Phalcon\Mvc\Application($di); 

    echo $application->handle()->getContent(); 

} catch(\Phalcon\Exception $e) { 
    echo "PhalconException: ", $e->getMessage(); 
    echo "<br /><br /><strong>Trace Stack</strong>: ", $e->getTraceAsString(); 
} 

私が言ったように、Phalconプロジェクトが間違っている理由はコードが賢明でない、それがローカルでうまくいくので、困惑している。だから、私が考えることができるのは、サブドメインのルーティングがどうにかなってしまうということだけですが、どうやって修正するのか分かりません。

+0

'/ home4/username/testsite/test/public/php_info.php'をコード' 'を実行して、apacheがそれを取得するかどうかを確認します。 – Tpojka

+0

@Tpojka私はそれをしました。そして、そのサイトのURL: 'test.main.com/php_info.php'に移動すると、php infoページが正常に表示されます。 – Jakob

+0

「RewriteBase」問題である可能性があります。私はあなたが '.htaccess'ファイルにそれを含めなかったのを見ましたが、私たちが知っているもの(main)からのものだけがApacheでデフォルトで設定されています。それを使って何かを試してみてください。 – Tpojka

答えて

0

だから、それは本当に単純に何かであることが判明しました。何らかの理由でWindows上のXAMPP経由でphalconをローカルで使用すると、indexController.phpをコントローラ名として使用することができました。しかし、Apacheサーバーにアップロードされたときには、完全なラクダのケースで大文字にする必要があるため、名前はIndexController.phpになりました。

関連する問題