バージョン:Laravel8+Vue2(Laravel Mixって言うのでしょうか?)
XSERVERのスタンダートでLaravelプロジェクトを公開しました。
public_htmlの一個下の階層に(非公開階層)プロジェクトを作成し、publicフォルダをシンボリックリンクすると言うやり方です。
XSERVERは公開ディレクトリを変更できないのでpublic_htmlにpublicフォルダを作成し、そことプロジェクトのpublicフォルダをリンクさせるやり方です。
公開自体は出来ております。
public_html直下に以下のhtaccessを作成して配置してあり、動作としては全てのアクセスをpublicフォルダへ向けるつもりで記載してあります。
htaccess
1<IfModule mod_rewrite.c> 2RewriteEngine On 3RewriteRule ^(.*)$ public/$1 [QSA,L] 4</IfModule>
ここなのですが、公開は問題ないのですが何かの際にhtaccessが動作してしまい、
ドメイン/abc/def
にアクセスするとタイミングと言うか条件がはっきりわからないのですが何かのタイミングで
ドメイン/public/abc/def
になってしまいます。
Laravelへ動作は移っているので仕方なくVueのrouterでpublicを検知してpublicを消した動作をさせているので最終的に白画面で止まったりとかはしていないのですが、アドレスに一旦public付きが表示された後に正しいURLへ遷移している形になっているので、非常によろしくない感じです。
そこでhtaccessでpublic_htmlへのアクセスを最初からpublicを削除した状態で渡すという事にすれば良いのか?と思いまして質問となりました。
RewriteRule で^(.*)$ で全てのアクセスを掴んでいるのはわかりますが、そもそも論が、publicが付いてしまっているときは実際のアクセスは($1)の時点で/public/publicになっているのか?とか考えていたら混乱してしまいました・・
最終の目的は「今のやり方だと一瞬でもpublicが付いたアドレスが表示されてしまうのでそれを防ぎたい」ということになります。
htaccessの書き方を教えてほしいのが質問ではありますが、思いついたのがpublicをhtaccessでURLから除外すれば良いのか?と言うだけの話で目的が達成できれば他のやり方でもご指導いただけたらと思います。
よろしくお願いいたします。