遭遇した問題点は以下のとおりです。thinkphp5.0フレーム、エラーの下----モジュールが存在しません:404?
問題追跡分析:
ブレークポイントまたはいずれかのvar_dump、Request.phpに分析中の缶機能
/ * * *(URLサフィックスを含む)現在のリクエストのパス情報情報のURLを取得します。 * @access公開 * @return文字列 * / パブリック 関数 パス情報() { IF(へIS_NULL($この - > パス情報)){ IF(ISSET($ _GET [コンフィグ:: GET( 'var_pathinfo' )])){ //は、パラメータの互換モードを持っているURLかどうかを決定する $ _SERVER [ 'PATH_INFO'] = _GET $ [コンフィグ:: GET( 'var_pathinfo' )]; 解除($ _GET [コンフィグ:: GET( 'var_pathinfo' )]); } ELSEIF (IS_CLI){ // CLI模式下のindex.phpモジュール/コントローラ/アクション/ paramsは/ ... $ _SERVER [ 'PATH_INFO'] = ISSET($ _SERVER [ 'ARGV'] [1])?$ _SERVER [ 'ARGV'] [1]: '' ; } // のvar_dump($ _ SERVER);の出口(); //分析パス情報信息 場合(!ISSET($ _SERVER [ 'PATH_INFO' ])){ foreachの(Configを:: GET( 'pathinfo_fetch')として $タイプ){ 場合(!空($ _SERVER [ $タイプ])){ $ _SERVER [ 'PATH_INFO'] =(0 === strpos($ _SERVER [ $タイプ ]、$ _SERVER [ 'SCRIPT_NAME']))? SUBSTR($ _SERVER [ $タイプ ]、strlenを($ _SERVER [ 'SCRIPT_NAME'])):$ _SERVER [ $入力]; 休憩; } } } この$ > - パス情報 = 空($ _SERVER [ 'PATH_INFOを'])?'/':LTRIM($ _SERVER [ 'PATH_INFO']、 '/' )。 } 返す $この - > パス情報を、 }
ブレークポイントの出力スーパーグローバルは、「分析パス情報情報」$ _SERVERを参照してください
[「ORIG_PATH_INFO」、「REDIRECT_PATH_INFO」は、これらの中に$ _SERVERスーパーグローバルからの値パス情報、分析までのコードのロジックから 、「REDIRECT_URL」] 終了したら、いくつかの溶液をREQUEST_URIでアレイ構成と組み合わされるように(Configで構成から得られた)キーの値を取得し、値は、我々のロジックを満たすための図、キーREQUEST_URIの値からわかります、まず第一に、これは、この問題を解決するために、私の最初のです。
設定した後、あなたが実際にページを訪問することができ、
しかし、ステータスコードが404であることが判明返す
問題が戻ってスーパーグローバルの$ _SERVERを取得することであるようだ、なぜ彼のパラメータ[「ORIG_PATH_INFO」、「REDIRECT_PATH_INFO」 、「REDIRECT_URL 「]、404でどのように来ているスーパーグローバル$ _SERVERのに拡張?
スーパーグローバル$ _SERVERは、この問題を来る、私は本当に理解していないが、インターネット上でと(自分のサービス展開を参照)をApachやnginxのを知った方法です、私はApachでした。
thinkphp Apacheの設定と、関連するならば、それは公共の場で.htaccessファイルであります
<のIfModule mod_rewrite.c> オプション+ FollowSymLinksを-Multiviews RewriteEngineオン するRewriteCond%{REQUEST_FILENAME}!-d するRewriteCondの%{REQUEST_FILENAME}!-f するRewriteRule ^([^(公共/)]+.*)$インデックス\ .phpの[L、E = PATH_INFO:$ 1] </のIfModule>
公式thinkphpコントラストの下で、
https://www.kancloud.cn/manual/thinkphp5/177576
するRewriteRule ^([^(公共 /)]+.*)$インデックス\ .phpの[L、E = PATH_INFO:$ 1]
この問題ではなく、あります
するRewriteRule ^(。*)$ index.phpを?/ $ 1 [QSA、PT、L]
この問題は、根本的に解決されます!!その他は変更する必要はありません。。。