Insights

技術情報

Xserverで公開ルートを変更できない場合のディレクトリ管理方法(.htaccess活用)

背景・課題

Xserverでは、ドメインごとに公開ルート(document root)を任意のディレクトリへ変更できません。そのため、public_html 直下にファイルやディレクトリが混在しやすく、以下の問題が生じます。

  • どれが本番サイトのデータか判別しにくい
  • リニューアル時の切り替えやファイル整理に手間がかかる
  • 誤って別用途のファイルを操作するリスクがある

解決策の概要

サイト本体をサブディレクトリに配置し、.htaccess で内部的にマッピングすることで解決できます。公開URLはルートのまま維持しつつ、実体ファイルだけを任意のディレクトリへ集約できます。


ディレクトリ構成例

/public_html/
├─ .htaccess
├─ tools/
├─ dev-tools/
└─ act3inc.com/
   ├─ index.php
   ├─ assets/
   └─ ...
  • アクセスURL:https://act3inc.com/
  • 実体パス:/public_html/act3inc.com/

実装方法(.htaccess)

RewriteEngine On
RewriteRule ^$ act3inc.com/ [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteCond %{REQUEST_URI} !^/act3inc\.com/
RewriteRule ^(.*)$ act3inc.com/$1 [L]

※ 上記は基本形です。存在しないURLへの404処理や、後述する /act3inc.com/〇〇 形式でアクセスされた場合の301リダイレクトは省略しています。この基本形のままだと、存在しないURLが404にならずソフト404になる場合があります。404処理を含めた改良版の構成は「Apache(.htaccess)の404トラブル切り分け」を参照してください。


サブディレクトリ運用時のURL正規化

この構成では、設定や参照方法によってサブディレクトリ名を含んだURLが生成される可能性があります。

たとえば https://act3inc.com/act3inc.com/contact/ のようなURLでアクセスされると、同一のページが複数URLで表示されてしまい、SEOやサイト運用の面で問題になります。

対応内容

重複URLを防ぐため、以下の2点を実施しました。

301リダイレクトによる正規化
/act3inc.com/〇〇 の形式でアクセスされた場合は、/〇〇 へ301リダイレクトします。

  • 例:https://act3inc.com/act3inc.com/contact/ → https://act3inc.com/contact/

canonical タグの調整
HTMLに出力する canonical タグには、/act3inc.com を含まない正規URLのみを指定します。

実装時の注意点

  • リダイレクト規則は、HTTPS強制・www統一などの転送処理の後、内部リライトの前に記述します。この順序にすることで、リダイレクトループや意図しない挙動を回避できます。
  • 301リダイレクトを設定していても、外部リンク・キャッシュ・計測タグなどの影響で重複URLが一時的に発生する可能性があるため、canonical タグの併用は必須です。

まとめ

Xserverの仕様上、公開ルート自体は変更できませんが、.htaccess を使えばURLはルートのまま、実体ファイルをサブディレクトリに整理して管理できます。

お問い合わせ・お見積もりはお気軽に

内容に応じたお見積もりも無料で行います。