質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.55%

.htaccessによるサブドメイン・リダイレクト設定方法

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 139

ytk6565

score 24

前提・実現したいこと

現在レンタルサーバーを契約してサブドメインを使用してサイトを作成しているのですが、Apache・.htaccessの設定の知見がないので、ご教授いただければ幸いです。
宜しくお願いいたします。

下記が実現したいことの一覧になります。

  • httpsに統一
  • wwwなしに統一
  • index.html もしくは index.php の拡張子を省略
  • ルートへのアクセスを禁止しサブドメインにリダイレクト
    -「https://example.co.jp」→「https://subdomain.example.co.jp」
  • パスによるアクセスを禁止しサブドメインにリダイレクト
    -「https://example.co.jp/subdomain」→「https://subdomain.example.co.jp」

下記が現在の設定になります。

/public/.htaccess
Redirect /subdomain "https://subdomain.example.co.jp/"

<IfModule mod_rewrite.c>
RewriteEngine On
# SSL
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# www
RewriteCond %{HTTP_HOST} ^www\.example\.co\.jp [NC]
RewriteRule ^(.*) https://example.co.jp/$1 [R=301,L]
# index.(html|php)
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
/public/subdomain/.htaccess
# Allow access by subdomain only
SetEnvIf Host "^subdomain.example.co.jp$" host
order deny,allow
deny from all
allow from env=host

<IfModule mod_rewrite.c>
RewriteEngine On
# SSL
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# www
RewriteCond %{HTTP_HOST} ^www\.subdomain\.example\.co\.jp [NC]
RewriteRule ^(.*) https://subdomain.example.co.jp/$1 [R=301,L]
# index.(html|php)
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

参考

https://qiita.com/haguhoms/items/86b279a196a7954582e6
https://on-ze.com/archives/2232
https://server-hikaku-guide.com/xserver-subdomain/

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • otn

    2020/02/23 02:05

    現状の問題点は何ですか?

    キャンセル

  • ytk6565

    2020/02/23 05:19

    現状の問題点は下記です。宜しくお願いいたします。
    ・「https://www.subdomain.example.co.jp」へのアクセスが正常に行われない。
    ・「https://www.subdomain.example.co.jp/index.php」へアクセスすると「https://subdomain.example.co.jp/subdomain」にリダイレクトされる。
    ・「https://example.co.jp」へのアクセスを「https://subdomain.example.co.jp」にリダイレクトする方法がわからない。

    キャンセル

  • otn

    2020/02/23 08:38

    質問に追記しましょう。
    xxxxへアクセスするとyyyyyとなると期待したが、zzzzzとなる
    という形式で書いてください。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.55%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる