2

作業中の CI Web アプリケーションをローカルホストから Web ホスティングに移動すると、「URL の複製と追加」の問題が発生します。

私のローカルホストでは、これは機能します (ログインページが表示されます): http: //mylocal/someapp/ --> http: //mylocal/someapp/index.php/loginにリダイレクトされます。

ただし、webhosting に移行した後、http: //webhosting.com/someapp/のようにアクセスしようとすると、自動的に追加されて http: //webhosting.com/someapp/%20//webhosting.com/someappになります。 /index.php/ログイン

私の .htaccess には何も含まれていません (ローカルホストで動作します)

config.php では、

$config['base_url']= '';

ログインコントローラ (次にログインビュー)にリダイレクトするホームコントローラは次のようになります。

class Home extends CI_Controller {

 function __construct()
 {
   parent::__construct();
 }

 function index()
 {
   if($this->session->userdata('logged_in'))
   {
     $session_data = $this->session->userdata('logged_in');
     $data['username'] = $session_data['username'];
     $this->load->view('home_view', $data);
   }
   else
   {
     //If no session, redirect to login page
     redirect('login', 'refresh');
   }
 }

 function logout()
 {
   $this->session->unset_userdata('logged_in');
   session_destroy();
   redirect('home', 'refresh');
 }

}

それとも、構成する必要がある Web ホスティングの設定でしょうか。

4

4 に答える 4

0

私自身の答えを見つけました。一部のウェブホスティングがCI更新を適切に処理していないことが判明しました。

header("Refresh:0;url=...");

代わりに、これだけが必要です。

header("Location: ...");

そこで、url_helper.php(system / helpers / url_helper.php line:543)をから変更しました

case 'refresh'

case 'xxxrefresh'

常にヘッダーの更新をスキップし、ヘッダーの場所のみを使用するようにします。これが適切な解決策かどうかはわかりませんが、私のWebサイトでは機能します。CodeIgniterコードをローカルマシンから移行する前に、ウェブホスティングの特性をテストしてください。

これが将来誰かに役立つことを願っています。

于 2012-06-01T05:07:52.223 に答える
0
$config['base_url']= '';

WebサイトのベースURLが含まれている必要があります。それが問題だと思います。

する必要があります:

$config['base_url']= 'http://yoursite.com/';
于 2012-05-31T07:12:21.107 に答える
0

ローカルのインストールでも同じ「重複の問題」がありました。これが私の解決策です: ベース URL を application/config/config.php に設定します。たとえば、次のようになります。

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

「重複の問題」を修正するには、 http://orプレフィックスを追加することが重要です。https://もちろん、末尾のスラッシュも必要です。

于 2016-01-22T20:27:43.813 に答える