0

私は最近、機能する codeigniter アプリケーションを新しいホスティング プロバイダーに移動しましたが、このトピックに似た課題に直面しています。要約すると、URL に index.php 参照を含めない限り、$_SERVER['PATH_INFO'] と $_SERVER['ORIG_PATH_INFO'] の値は設定されません。これは、私の .htaccess が原因であるか、問題の組み合わせである可能性があることを意味していると思います。これが私がやったことです:

  1. index.php 参照を削除するために、codeigniter の config.php ファイルを編集しました。

    $config['index_page'] = '';
    
  2. URL から index.php を削除するために、次の .htaccess ファイルを作成しました。

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

    RewriteRule [L] と [QSA,L] の値を切り替えたところ、同じ動作が得られました。

  3. config.php ファイルで、次の値を設定します。

    $config['uri_protocol'] = 'PATH_INFO';
    

上記の構成を使用して www.mysite.com/test/1234 を開こうとすると、単に www.mysite.com が開きます。しかし、www.mysite.com / index.php /test/1234 を開くと、$_SERVER[PATH_INFO] => /test/1234 になりますが、www.mysite.com しか開きません。

に戻ると:

    $config['uri_protocol'] = 'AUTO';

www.mysite.com/test/1234 に (/index.php/ を必要とせずに) アクセスできますが、$_SERVER[PATH_INFO] 値が設定されていません。

任意の提案をいただければ幸いです。

4

1 に答える 1

0

開発および本番環境での PHP バージョンへの参照はありませんが、一見すると cgi.fix-pathinfo 設定を変更してみます。

http://php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo

php.ini 編集が利用できる場合。

于 2012-12-05T10:10:24.810 に答える