SAE
thinkphp での URL 書き換えに関する ThinkPHP の問題。
ルートディレクトリに config.yaml があります (SAE は .htaccess をサポートしていないため)
内容は次のとおりです:
名前: thinktest
バージョン: 1
ハンドル:
- 書き換え: if(!is_dir() && !is_file() && path~"^(.*)$") goto "/index.php/$1"
- 書き換え: if(path~"^/test.html$") goto "/test.php"
重要なのは、2 番目のリライトに注目することです。
ルートディレクトリにtest.htmlとtest.php
があります
test.html にアクセスすると、test.php
にアクセスできます。
問題は
エントリファイルindex.php
があります
Action にはファイル IndexAction.class.php
があります
インデックスのオペレーションコードは次のとおりです:
echo "";
つまりページジャンプです。
同時に、Tpl/default/Index/ の下に test.html と test.php
があります。
この時点では、ジャンプ後に test.php にはアクセスされません
ただし、ルートディレクトリのtest.htmlにジャンプすれば問題ありません。
config.yaml のスコープに関係していますか?それとも他の理由があるのでしょうか?
専門家に答えを聞いてください!
------解決策---------
thinkphp の疑似静的は PATH_INFO を通じて実装されます
URL 書き換えを使用するために必要な唯一のことは、index.php ファイル名
を非表示にすることです。
thinkphp は単一の入り口なので、http://serverName/test.php
のような URL はありません。
この点は
から来ています
.htaccess
RewriteRule ^(.*)$index.php/$1 [QSA,PT,L]
または config.yaml
- 書き換え: if(!is_dir() && !is_file() && path~"^(.*)$") goto "index.php/$1"
ドメイン名外のすべてのコンテンツを、index.php