1. ホーム
  2. php

[解決済み] PHP で SITE_ROOT と SERVER_ROOT の値にアクセス/作成する最良の方法は?

2022-02-07 18:24:54

質問

includeとjs/cssなど、2種類のパスが必要です。私は、以下のものを使用しています。 mod_rewrite . 以下はうまくいくのですが・・・。

現在、私のすべてのファイルの先頭にはこれが含まれています。

define('SERVER_ROOT',   'C:/wamp/www/site_folder/');
define('SITE_ROOT',     'http://localhost/site_folder/');

というように、ファイルが呼び出されます。

require_once SERVER_ROOT . 'st_wd_assets/inc/func_st_wd.php';    

<link rel="stylesheet" type="text/css" href="<?php echo SITE_ROOT;?>st_pages/user_area/css/user_area.css" media="screen"/>

おわかりのように、ローカルホストとライブサーバ間でバージョンを移動するたびに、各ファイルの先頭を更新するのは大変な作業です。

これらのROOT値を定義する最良の/標準的な方法は何でしょうか?

に解決策が見当たりません。 $_SERVER スーパーグローバル?普通の人はVirtualHostsを使うだけなんでしょうか?でも、それならまだROOT定数を定義する必要があるのでは?

どのように解決するのですか?

はい。 みんな普通にVirtualHostsを使っていますよ。

いくつか方法があります。

  • 相対パスで設定ファイルをインクルードすることができます。
  • スーパーグローバル$_SERVERからDOCUMENT_ROOTを使用して、そこに設定ファイルを配置することができます。
  • 可能であれば、Webサーバーのコンフィグを使用することができます。 php_value auto_prepend_file を.htaccessに記述してください。
  • そして少なくとも、あなたの環境を検知して、上部に条件で書かれた2つのルートから選択することができます。
  • そして、mod_rewrite を使用している場合、他のすべてのファイルを含むフロントコントローラを作成します。