C-limber's highへようこそ。
C-limber's highは山登りのサイトではなく、福岡システム開発WEB制作会社 C-limber(クライマー)株式会社の技術メモブログです。
福岡システム開発ホームページ制作をお探しの方はお気軽にご相談下さい。

2016年3月19日土曜日

[Yii2]サーバ側でドキュメントルートを変更できない場合のYii側の設定方法

3:06 Posted by Unknown No comments
日々お疲れ様です。
クライマーの井口です。

日々充実しすぎて大変です 笑

ところで、
レンタルサーバなどにYii2を設置する場合、
ドキュメントルートの設定変更ができず困ることがあります。
ちょうどさっき困ってました。

対処法の備考録です。
※この対処法が効かないサーバもあります。
(そもそもmod_rewriteの機能を制限しているようなへんてこサーバも有りますので要注意です)

実際のドキュメントルート: wwwディレクトリとした場合

www/app/以下にyii2を配置する想定のお話です。
yii2はbasic templateを使用した場合を想定しています。
(frontendとbackendがわかれないやつ)

www/app/config/web.php(メインの設定ファイル)に追記する内容
use \yii\web\Request;
$baseUrl = str_replace('/app/web', '', (new Request)->getBaseUrl());

return [
    'basePath' => dirname(__DIR__),
    'components' => [

        'request' => [
            'baseUrl' => $baseUrl,
        ],
        'urlManager' => [
            'baseUrl' => $baseUrl,
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                '' => 'site/page'
            ],
        ],
    ],
];

www直下に.htaccess
RewriteEngine on
RewriteRule ^(.*)$ app/web/$1 [L]


app/web/直下のhtaccess
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php


このように設定した場合、トップページへのリンク方法は
Yii::$app->request->baseUrl を使わず、
Url::to(['/']);

を使いましょう。


以上、備考録でした。

-----------------------------------------------
弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナ、エンジニア、コーダの方募集中です。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 ・Iot開発 C-limber(クライマー)株式会社


0 コメント:

コメントを投稿