- ベストアンサー
シンボリックリンクでマルチサイトを実現する方法
- 全国向けのサイト構築を考えています。トップページは、都道府県を選択するようにし、都道府県のサイトは別ドメインで実現しようと思ってます。
- それぞれのデザインや機能などは同じなので、シンボリックリンクでソースを一元化したいと思っています。しかし、シンボリックリンクを作成し、それぞれのページで '__FILE__' を参照したところ、元ソースのパスとなっていますので区別ができません。
- どのように区別すればいいかわからないので、アドバイスをいただきたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
投稿する時は、サーバの動作環境、開発する言語など詳細に書かないと正しい解答を得られないのでご注意下さい。 他の書き込みから判断するとPHPで作成しているのですよね? __FILE__の結果が同じってことなら、PHPのバージョンがPHP 4.0.2 以降では? それはPHPの仕様なので普通は使いません。 こういう場合は環境変数から判断します。
その他の回答 (3)
- yambejp
- ベストアンサー率51% (3827/7415)
サブドメインのように見えるのはあくまでも例ということですね? であれば、シンボリックリンクは使わないほうがよいでしょう。 共通部分を書いたファイルを用意しておいてincludeするのが妥当では?
お礼
シンボリックリンクとincludeの両方を使って実現できました。(^^ トップのindex.phpをhokaidoのフォルダでindex_com.phpとしてシンボリックリンク。 hokaidoのindex.phpは実ファイルで、index_com.phpをincludeする。 hokaidoのindex.phpで代入させることで区別できました。 ありがとうございました。
- nick9090
- ベストアンサー率26% (102/378)
スパムサイトの量産は迷惑なので止めてくださいね。
補足
私が構築しようとしてるのは、スパムサイトではありません。 ご心配には及びませんよ。(^^
- yambejp
- ベストアンサー率51% (3827/7415)
>シンボリックリンクでソースを一元化 今回の例のどの辺がシンボリックリンクをつかっているのでしょうか? サブドメインを作成して、バーチャルドメインを組んでいるのではないのでしょうか? >それぞれのページで "__FILE__" を参照したところ、 >元ソースのパスとなっていますので このへんも何をなさりたいのかよくわかりません。 具体的に何のhttpサーバーでどのような処理をなさっているのか補足 したほうがよいでしょう
補足
#ちょっと説明不足でしたかね。(^^; トップページのソースを下のディレクトリに置いてあるとします。 /home/hogehoge/htdocs/index.php URLは、 http://www.hogehoge.com/index.php 北海道用のページは、 /home/hogehoge/htdocs/hokaido/index.php となりますが、トップページのソースとほぼ同じですので、一元化したいのです。 なので、シンボリックリンクを使っています。 ln -s /home/hogehoge/htdocs/index.php /home/hogehoge/htdocs/hokaido/index.php ほぼ同じとは言え、若干の違いはありますので、どのディレクトリのファイルがアクセスされてるのか、 区別する必要があります。 そこで、"__FILE__"を使おうと試みましたが、元ファイルでもシンボリックリンクのファイルでも、 同じく、元ファイルのPATHしか得られませんでした。 これでは区別ができません。 最初にアクセスするindex.phpはシンボリックリンクを使わずに、 デザイン部分のみをindex.tplという形で作成し、シンボリックリンクで一元化はできそうですが、 現在のソースの手直しが発生するので、できれば避けたいと考えています。
お礼
phpのカテゴリなので、言語についての記述は省略してしまいましたが、 バージョンによっても変わってくるので、記述は必要ですね。 すみませんでした。 PHP 5.2.6です。 __FILE__は絶対パスになるんですね。