【PHP】PHPで次のようなことをしたいのですが、上手い方法ないでしょうか?

・あるフォルダ(A)の下に、こちらで決めた名前を持つフォルダ(B)を作成。
http://hoge.jp/の下に、poipoiというフォルダを作成して、http://hoge.jp/poipoi/
・そのフォルダ(B)の直下にあるファイルにアクセスすることで、実際はその上のフォルダ(A)の直下にあるファイルを呼び出す。
http://hoge.jp/poipoi/test.php を呼んだ時に、実際には http://hoge.jp/test.php を呼び出す。)
(ただし、ブラウザのURLは http://hoge.jp/poipoi/test.php を呼び出しているように見せる。)
・出来るだけフォルダ(A)からフォルダ(B)にファイルをコピーすることをしたくない。
(フォルダ(B)を複数作ろうと思うため、いちいちコピーを繰り返すとメンテナンスが面倒になる。)
よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/02/03 11:47:02
  • 終了:2009/02/05 22:59:30

回答(4件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/02/03 12:30:07

ポイント27pt

http://hoge.jp/の下に、poipoiというフォルダを作成

mkdir関数を使ってできます。


http://hoge.jp/poipoi/test.php を呼んだ時に、実際には http://hoge.jp/test.php を呼び出す

できます。

require_once関数を利用し、"http://hoge.jp/poipoi/test.php" を下記のように記述して下さい。

<?php
require_once("../test.php");
?>
id:tail_furry

ありがとうございます。

あ、mkdirはこちらでもできます。説明不足でごめんなさい。

require_onceを使うと確かにいけそうですね。

ただ、ファイルをフォルダの下に作る必要がありますね。

ファイルをpoipoiフォルダの下に作らないですむ方法はないでしょうか?

ダメそうでしたらこちらでいきますが…

2009/02/03 12:40:35
id:TAK_TAK No.2

tak回答回数995ベストアンサー獲得回数832009/02/03 12:53:34

ポイント27pt

ln でシンボリックリンクが一番 安直な方法だと思います。

下位フォルダが、 ユーザがアクセスするためのURLとして存在するだけなら、

これでいいのではないかと思います。



phpファイルが、他のファイルにアクセスする必要があったりすると

設定が複雑になってくる場合はあると思います。

id:tail_furry

ありがとうございます。

PHPだとsymlinkでしょうか。

試してみたいと思います。

2009/02/03 13:04:33
id:pahoo No.3

pahoo回答回数5960ベストアンサー獲得回数6332009/02/03 13:02:51

ポイント9pt

ファイルをpoipoiフォルダの下に作らないですむ方法はないでしょうか?

それはPHPだけで実現することはできません。


Webサーバにエイリアス設定を行う方法

もし Apache をご利用なのであれば、mod_rewriteを使って、"http://hoge.jp/poipoi/test.php" のジャンプ先を "http://hoge.jp/test.php" に見せかけます。

mod_rewrite の使い方については、過去質問でも何度も取り上げられていますので、検索して下さい。


フレームを使う方法

あまりスマートな方法ではありませんが、表示URLを変えたくないということでしたら、インラインフレーム(iframe)を使う方法があります。

"http://hoge.jp/poipoi/test.php"の中に "http://hoge.jp/test.php" を iframe で埋め込みます。

id:tail_furry

ありがとうございます。

.htaccessに書くところで落ち着きそうです。

2009/02/03 13:30:49
id:ilo No.4

sakai回答回数9ベストアンサー獲得回数22009/02/03 13:03:51

ポイント27pt

.htaccessやconfファイルを触れる環境なら、

Rewriteを使うとpoipoiフォルダにファイルを作らなくても、

上位ディレクトリのスクリプトを実行できます。

http://hoge.jp/の直下に.htaccessファイルを作って、例のように記述すると

http://hoge.jp/poipoi/test.phpへアクセスした時に、http://hoge.jp/test.phpが呼び出されます。


例)

RewriteEngine on

RewriteRule ^poipoi/test.php$ /test.php [L]

id:tail_furry

ありがとうございます。

.htaccessを使う場合は上位ディレクトリの.htaccessに書く必要があるのですね。

2009/02/03 13:37:18

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません