0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

エックスサーバーのサブドメインでLaravelプロジェクトを表示するための .htaccess 設定手順

Last updated at Posted at 2025-02-13

前提

エックスサーバーでは、サブドメインのドキュメントルートが固定 されています。

/home/akkun1114/メインドメイン/public_html/サブドメイン
c
→ このフォルダを Laravel の public/ にリダイレクトする必要がある。

## 現在のディレクトリ構成(エックスサーバー上)
```bash
/home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com/    ← エックスサーバーの固定ドキュメントルート
/home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com/EXP-alert/  ← Laravel プロジェクト本体
/home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com/EXP-alert/public/  ← Laravel の公開フォルダ

→ exp-alert.akkun1114.com にアクセスすると EXP-alert/public/ を読み込むように設定する。

手順

1:.htaccess を新規作成

エックスサーバーの exp-alert.akkun1114.com のルートに .htaccess を作成する。

まず、カレントディレクトリを確認

pwd

↓ 期待する出力:

/home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com

これがエックスサーバーで固定されている exp-alert.akkun1114.com のルート

2:.htaccess を新規作成(なかったら)

## /home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com
ls -a

.htaccessが、存在しなかった場合新規作成
どちらでも良い

vi /home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com/.htaccess

echo "" > /home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com/.htaccess

3:.htaccess の内容を記述

vi .htaccess

作成した .htaccess を開き、以下のコードを記述。

<IfModule mod_rewrite.c>
    RewriteEngine On

    # HTTPSリダイレクト(必要に応じて)
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    # Laravel の public ディレクトリをルートとして設定
    RewriteCond %{REQUEST_URI} !^/EXP-alert/public/
    RewriteRule ^(.*)$ EXP-alert/public/$1 [L]
</IfModule>

これにより、
・HTTPS が適用されていない場合、自動的に https:// にリダイレクトする
・アクセスが exp-alert.akkun1114.com に来た場合、自動的に EXP-alert/public/ をルートとして参照する

上記コードの丁寧な解説

4:.htaccess のパーミッションを設定

作成した .htaccess のパーミッションを適切に変更。

chmod 644 /home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com/.htaccess

644 にする理由は、
・rw-r--r-- (644) → オーナー(自分)は読み書き可、他のユーザーは読み取りのみ可
・セキュリティ的に 777 は危険なので使わない!

5:.htaccess が正しく作成されたか確認

ls -la /home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com/

↓ 期待される出力

-rw-r--r--  1 akkun1114 members xxxx .htaccess

.htaccess がリストに表示されていればOK!

.htaccess のキャッシュをクリア

エックスサーバーでは .htaccess の変更がすぐに反映されないことがあるため、以下のコマンドでキャッシュをクリア。

touch /home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com/.htaccess

これにより .htaccess のタイムスタンプを更新し、サーバーが最新の設定を読み込む

7:.htaccess 設定後の動作

サブドメインにアクセスすると、サブドメイン/Laravelプロジェクト/public/ がルートとして動作する!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?