dポイントプレゼントキャンペーン実施中!

nuxt.jsでサイトをデプロイして、シンボリックリンクを貼りました。

example.com/public_html/coc/~(Xサーバー: example.comのサブドメインがcocです)

production/coc/~

というふうにしています。
この時、「https://coc.example.com/coc」にアクセスしたらちゃんと「production/coc」に飛ぶのですが、「example.com/public_html/coc/」内に.htaccessを配置し、coc/にリダイレクトさせようと思ったら上手くいきません。

htaccessの内容は以下です。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^(.*)$ coc/$1 [L,QSA]

シンボリックリンクの名前?と、サブドメインの名前が同じなのでループしてるのか、
https://coc.example.com/coc/coc/coc/coc/coc/coc/ …
という感じでループしてしまいます。

こういった時、シンボリックリンクの張り方(名前の付け方?)を変えるべきなのか、.htaccessで対処できるのか、ご教示いただきたいです。宜しくお願いします。

質問者からの補足コメント

  • うれしい

    回答ありがとうございます。説明不足だったかと思います。
    >「https://coc.example.com/coc」⇒「https://production/coc」に飛ぶびます??
    シンボリックリンクによって内部的にproduction/cocのファイルが表示される感じです。URLは前者のままです。

    htaccess無しで「https://coc.example.com/coc」にアクセスしたときはシンボリックリンクが効いて上記のようにちゃんと表示されるのですが、ルートディレクトリにhtaccessを置いて/cocディレクトリに移動させようとして(前者のURLを実現しようとして)みたら、動かないです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/03/16 12:43
  • うーん・・・

    >アクセスされた文字列を保持して、その下にcoc/を付加せよ、と言ってる訳だから、https://coc.example.com/coc/cocになって当たり前。
    これはその通りで、ここが原因なのもなんとなくわかるのですが...

    要は、「https://coc.example.com」にアクセスしたら「production/coc」の中身が表示されるというのが理想です。シンボリックリンク側は上手く動いているのかな〜と認識しています。

      補足日時:2021/03/16 12:43

A 回答 (1件)

ルートに.htaccessを設置して、本当に


https://coc.example.com/coc」⇒「https://production/coc」に飛ぶびます??

ルートに設置した.htaccessは提示してる書き方と当然違うのでしょう?

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^(.*)$ coc/$1 [L,QSA]

は、アクセスされた文字列を保持して、その下にcoc/を付加せよ、と言ってる訳だから、https://coc.example.com/coc/cocになって当たり前。

ルートに設置したらhttps://coc.example.com/cocに転送されます。

デフォルトで文字列は保持されるので、
Redirect permanent /coc/ https://production/coc/
とやるだけだと思いますよ。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!