1.frontend/web/ のプログラムをルート ディレクトリにコピーします
2.index.php のプログラムを次のように変更します:
<?php defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); require __DIR__ . '/vendor/autoload.php'; require __DIR__ . '/vendor/yiisoft/yii2/Yii.php'; require __DIR__ . '/common/config/bootstrap.php'; require __DIR__ . '/frontend/config/bootstrap.php'; $config = yii\helpers\ArrayHelper::merge( require __DIR__ . '/common/config/main.php', require __DIR__ . '/common/config/main-local.php', require __DIR__ . '/frontend/config/main.php', require __DIR__ . '/frontend/config/main-local.php' ); (new yii\web\Application($config))->run();
3. フロントエンドの下のディレクトリ web ディレクトリを削除します。
4. API エンドを www.***.com/api/web/site/login モードとして実装する場合、それができないことが判明しました。 Index.php とコントローラーを呼び出すことができないか、または呼び出すこともできないかのように実装されます。そこで、さまざまな推測を立て、根本的な問題が分からなくても、段階的に消去法を使って問題を解決してみました。
対応する解決策は、基になるコードを読み取ることです。これにより問題は解決できますが、速度は遅くなります。最後に、.haccess コードを次の形式に変更すると、index.php を非表示にして擬似静的を実現できることがわかりました。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /api/web/index.php [L] </IfModule>
API のデバッグのプロセス中に、www.*** を見つけました。 com/api/web/articles ブラウザでコードを閲覧すると、xmlデータが表示されなかったり、.jsonをダウンロードするように求められたりするのですが、後で360ブラウザの互換モードが選択されていることが分かり、スピードモードに変更すれば大丈夫でした。 postman でデータをテストすると成功しました。
推奨チュートリアル: YII チュートリアル
以上が仮想ホストをサポートするように yii プログラムを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。