シェアする

  • このエントリーをはてなブックマークに追加





【Laravel+Inertia+Vue】 URLにaliasのあるアプリでRoutingにハマった!

シェアする

  • このエントリーをはてなブックマークに追加
  • 0

Apache1台でいくつものwebアプリを運営しているとき、

ホスト名だけでは間に合わず、aliasを指定して振り分けることと思います。

今回、そのうちの1つにLaravel+Inertia+Vueのアプリがあったのですが、

Routingがうまく動作せずハマってしまったのでその解決をメモ。

Apacheのalias設定

そのサーバは以下のように複数のアプリをaliasをきって

振り分けていました。

test.sample.co.jpにはwordpressにアクセスさせ、

test.sample.co.jp/systemにはLaravelのアプリにアクセスさせる感じです。

RoutingとController

Routingを以下のように設定しました。

Controllerは以下のように記述していました。

この場合にうまく動作しない現象

さて、ここで以下のようにアクセスしてみました。

すると

test.sample.co.jp/system/system/login

systemが1つ多いURLにリダイレクトされる形になってしまいました。。。

原因と解決策

この問題を引き起こしている原因は、Inertia::renderメソッドが返却する

Responseクラスにありました。

このクラスは以下です。

vendor/inertiajs/inertia-laravel/src/Response.php

早速中身を眺めて行くと、toResponseというメソッドの中で、

以下のような記述がありました。

urlの値をbaseUrlとrequestUriを結合してますね。

baseUrlにsystemが入っているため、1つ多くsystemがくっついたURLになっていたと

考えられます。

なので、これをカットしてみました。

これで無事

へアクセスすることができるようになりました。

とはいえ、、、

修正する対象がvendor配下にあるプログラムを直接修正してしまっているので、

composerなどでversionupすると書き換わってしまう恐れもありますので、

注意が必要です。

なんかもっといい方法がありそうですが、一旦解決策でした。

それでは!!!

ブログランキング・にほんブログ村へ
にほんブログ村


人気ブログランキング

20代前半までは東京で音楽をやりながら両手の指以上の業種でアルバイト生活をしていましたが、某大手プロバイダのテレアポのバイトでPCの知識の無さに愕然とし、コンピュータをもっと知りたい!と思ったことをきっかけに25歳の時にITの世界に未経験で飛び込みました。
紆余曲折を経て、現在は個人事業主としてお仕事させていただいており、10年ほどになります。
web制作から企業システム構築、ツール開発など、フロントエンドもバックエンドもサーバーもDBAも依頼があれば何でもやってきた雑食系エンジニアです。

今風にいうとフルスタックエンジニアということになるのかしら??

→ 詳細プロフィールというか、生い立ちはこちら

→スキルシートをご覧になる場合はこちら

→お仕事のご依頼やお見積りなどお問い合わせはこちらから!

シェアする

  • このエントリーをはてなブックマークに追加

フォローはいかがですか?