thinkphpモジュールが存在しません:404

遭遇した問題点は以下のとおりです。thinkphp5.0フレーム、エラーの下----モジュールが存在しません:404?
エラーの詳細

問題追跡分析:
ブレークポイントまたはいずれかのvar_dump、Request.phpに分析中の缶機能

/ * *
     *(URLサフィックスを含む)現在のリクエストのパス情報情報のURLを取得します。
     * @access公開
     * @return文字列
     * / 
    パブリック 関数 パス情報()
    {
        IFへIS_NULL$この - > パス情報)){
             IFISSET$ _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を参照してください
スーパーグローバル$ _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]

 

この問題は、根本的に解決されます!その他は変更する必要はありません。

 

おすすめ

転載: www.cnblogs.com/pianxiangongzi/p/11870713.html