• ベストアンサー

PHPのクエリ付(?)URLの転送

サーバーに関する詳しいことはまったくわかってない人間なのですが、 現在PHP?smarty?ベースのサーバでホームページを開設しています。 それをhtmlファイルを自由に配置できる一般的なサーバと分けて管理することになりました。 PHPのサーバを(A)、htmlのサーバを(B)とすると、 (B)サーバでトップ、カテゴリーページをhtmlで作成。 (A)サーバで詳細ページをPHPで作成します。 (A)サーバーで使っていたドメイン(xxx.jp)を(B)サーバにうつし、 (A)サーバに新しいドメイン(???.jp)を割り当てます。 現在のページ(Aサーバ)は http://www.xxx.ne.jp/?xyzoo=ooooo http://www.xxx..ne.jp/?mode=vrae=oooooo&awaa=1 (oooは数字) のようにページが作成されます。 その他(txtファイルなど)ファイルはアップロードできません。 それを(B)サーバではhtmlで作成し、ファイル名もabc.htmlなどと変わります。 ですので http://www.xxx.ne.jp/?mode=vrae=oooooo&awaa=1 にアクセスしてもトップページが表示されるだけです。 これらにアクセスすると、新しいファイルに転送するにはどうすればよいでしょうか。 (http://www.xxx.ne.jp/?mode=vrae=oooooo&awaa=1にアクセスすると、 http://www.xxx.ne.jp/abc.htmlに転送 (http://www.xxx.ne.jp/?mode=vrae=oooooo&awaa=2にアクセスすると、 http://www.xxx.ne.jp/def.htmlに転送 ) また、http://www.xxx.ne.jp/?xyzoo=oooooにアクセスされると、 今度は、違うサーバのhttp://www.???.ne.jp/?xyzoo=oooooです。 リダイレクトとか色々調べてみたのですが、結局わからずでした。。。 (.htaccess で Redirect permanent /?mode=vrae=oooooo&awaa=1 http://www.xxx.ne.jp/abc.html としてみたけどだめでした…) もう一つ、今度は 新しいドメイン(http://www.???.ne.jp/)になった(A)サーバについて、 詳細ページはhttp://www.???.ne.jp/?xyzoo=ooooo等で使うのですが、 トップページもアクセスできるようになります。 トップページhttp://www.???.ne.jp/にアクセスされると、新しいサーバのhttp://www.xxx.ne.jp/に転送したく思ってます。 現状では、(A)サーバの転送はmeta や javascript で転送する方法しか思いつきません。 PHP?smarty?で転送する方法は無いでしょうか。 なお、新しい(B)サーバは一般的なサーバ(?)で、ファイルは基本的に何でも置けます。 古いPHPの(A)サーバはsmarty.server?のタグでページを作成し、 その他ファイルを置けないどころか、head内も触れません…。 (metaやjavascriptはbody内に書くしかないのです) どなたか詳しい人、教えていただけませんか。 よろしくお願いします。

  • PHP
  • 回答数5
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • masa6272
  • ベストアンサー率66% (93/140)
回答No.5

(B)サーバー上のファイルのJavaScriptで対応するのが、一番簡単でしょうね。 head の中で、渡されたURLによって、飛び先を変える関数を書いて、body のonLoad属性で関数を呼び出す。 これでいけるでしょう。

help-2795
質問者

お礼

色々教えていただいてありがとうございます!

help-2795
質問者

補足

ということは、(B)サーバ内に http://www.xxx.ne.jp/?xyzoo=ooooo 等のファイルを作らないといけないって事ですよね。 私にできるのかな… ではちょっと調べてみます。

その他の回答 (4)

  • masa6272
  • ベストアンサー率66% (93/140)
回答No.4

PHPのような言語は、ファイルの読み込みや書き込みを行いますので、 静的なHTMLと別のところに置くというのは、正しい管理かもしれません。 で、私の理解力の問題かもしれませんが・・・ (A)サーバー PHPプログラムが動き、Smartyテンプレートが格納されている。 PHPプログラム、Smartyテンプレートの編集が可能 (B)サーバー 静的なHTMLが置かれている。 でいいのでしょうか? 「HTMLの<head> の部分が触れない」 「(B)サーバーには、PHPも置ける」 この辺の状況が見えないんですが。 何が、できて何ができないか、ピンときません。 HTMLは静的ですので、HTMLから飛ばすにはJavaScriptしかないです。 JavaScriptでしたら、body の onLoad にでも、JavaScriptを入れるんですかね? 本当は、headに関数定義を書いて、onLoadでは、関数呼び出しの方がすっきりしますが。 一度、PHPにもってくれば、URLの引数部分を自由に取り出せますので、いかようにもできますが・・・ PHPが書けて、Smartyが分からないと・・・ 無理です。

help-2795
質問者

補足

申し訳ございません、説明不足でした。 (A)サーバ ショッピングカートシステムをレンタルで借りています。 例えばここです。 http://cart1.fc2.com/setcart_sample/ ここがどのようなシステムやっているかはわからないですが、 このようなシステムです。 ただ、上記サンプルURLではhead内も触れるみたいですが、 私の借りているカートは、テンプレートでbody内しか編集できません。 そのカートシステムはPHPでsmartyで動いて(?)います。 (B)サーバ カートシステムではなく、普通のftpサーバ(?)で、 htmlでもcgiでも何でも配置でき、もちろんhead内もいじれます。 今は (A)サーバ http://www.xxx.ne.jp/ ですが、これが (A)サーバ http://www.???.ne.jp/ (B)サーバ http://www.xxx.ne.jp/ となります。 (AサーバのドメインをBへ、Aサーバは新しいドメインになります) 現在(A)サーバで運営しているのですが、商品部分だけを残し、topやカテゴリーページは(B)サーバでHTMLで作成しなおします。 この場合(A)サーバで ​http://www.xxx.ne.jp/?xyzoo=ooooo だったurlは、(B)サーバ上で存在しません。 ファイル名も(B)サーバでは変わるので(htmlで違う名前で作成していますので)ここにアクセスされると http://www.xxx.ne.jp/?xyzoo=ooooo とアドレスは出ても、トップのhtmlが表示されるだけです。 この場合に​http://www.xxx.ne.jp/?xyzoo=ooooo にアクセスすると、 http://www.xxx.ne.jp/abc.html (Bサーバ) に転送したり http://www.???.ne.jp/?xyzoo=ooooo (Aサーバ) に転送したいのです。 また、(A)サーバにはドメインが変わっても、新しいドメインで実際はトップページやカテゴリーページが残っています。 これらにアクセスされると、 (B)サーバのトップやカテゴリーページに転送したいと思っています。 説明わかりますでしょうか… 文章力不足で申し訳ございません ><

  • masa6272
  • ベストアンサー率66% (93/140)
回答No.3

確認ですが、(B)サーバーは、スタティックなHTMLだけを置くサーバーでしょうか? それでしたら、JvaaScriptで、Window.location.search属性の値によって、Window.location.hrefを書き直すくらいしか、思い浮かびません。 PHPまで、持ってくればプログラミング言語ですので、色々できますが・・・ ところで、PHPファイルの置いてある、サーバーアクセスで、ファイル名がないんですが・・・index.phpが読まれるような設定ですか? 一応、PHP、Smartyは、プロのつもりですが・・ はっきり、言ってこれだけでは、状況が良くわかりません。

参考URL:
http://www.tohoho-web.com/js/location.htm
help-2795
質問者

補足

javascriptでそんなことができるんですね。 やり方はよく分からないですが、明日にでも調べて挑戦してみます。 (B)サーバはスタティックなHTMLだけです。 phpの設置もできるのですが、何しろプログラミングが分からないので^^; PHPファイルのある(A)サーバは、テンプレート化されたショッピングカートシステムです。 メニューなどの共通ページを作成し、コンテンツ共通テンプレートや商品共通テンプレートを include file で読み込んで、商品タグ({productid}など)で商品情報を表示するシステムです。 index.phpが読み込まれる設定なのかどうかはよく分かりません… トップページは http://www.xxx.ne.jp/ カテゴリーは http://www.xxx.ne.jp/?mode=vrae=oooooo&awaa=1 見たいに表示されます。 コレに拡張子.phpをつけても、そのページもトップページが表示されます… お手数をおかけします。 

  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.2

> php自体があまりわからないのですが 申し訳ありません。 {php} header('Location: ​http://www.xxx.ne.jp/'); {/php} のようなことはできないのでしょうか? と単純に思ったのです。

help-2795
質問者

お礼

phpでそのような方法があるのですね、 少し勉強してみます。 ありがとうございます!

help-2795
質問者

補足

{php} header('Location: http://www.xxx.ne.jp/'); {/php} と <{php}> header('Location: http://www.xxx.ne.jp/'); <{/php}> と試してみましたが、無理でした…TT お世話かけます…

  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.1

※ 確認ですが。 > head内も触れません…。 と仰られているのは index.php に <? if(引数というかQUERY_STRINGが空であれば真){ header('Location: http://www.xxx.ne.jp/'); } ?> ということが出来ないと仰られている意味でしょうか? # smarty についての概要はわかりますが実際には使っておりませんので。

help-2795
質問者

補足

php自体があまりわからないのですが、 <body>タグ内にはかけます。 <head>~</head>内は一切触れないんです… 共通メニュータグを記入やら、topのタグ記入、カテゴリーのタグ記入などで、テンプレート化といえばいいのでしょうか、 そのようなシステムになっております。 Yahoo!shoppingみたいなシステムといえばよいのでしょうか。 ただ、CSSやHTMLタグはほぼ使え、body内に記述になるのですが、 他サーバの外部ファイルも参照することはできます。

関連するQ&A

  • phpでurl転送

    a.phpというphpファイルとa.txtのファイルがあって ホームページ上で a.php?b=1にリンクした場合a.txtファイルの1行目に書かれているurlにジャンプする。 a.php?b=2にリンクした場合a.txtファイルの2行目に書かれているurlにジャンプする。 a.php?b=3 ・・・ のようにするphpファイルはどうやったらつくれるでしょうか?

    • ベストアンサー
    • PHP
  • さくらサーバでPHP

    現在、さくらサーバでPHPのテストをしています。 /home/abc/www/ にaとbとcのディレクトリにサンプルサイトを分けています。 a~c配下にてPHPを動かしたいのですが.phpにしてアクセスしてみると 500 internal server errorになってしまいます。 PHPファイルのパーミッションは755です。 しかし、a~c配下に何かフォルダを作成してその中でPHPを実行すると正常に動作します。 例1: /home/abc/www/a/a_1/test.php は ○ 例2:   /home/abc/www/a/test.php   は × 例2の階層でもPHPを動作させたいです。 ご教授ください。 環境: サーバ:さくらサーバスタンダードプラン PHP: 5.2.8 FTP: FFFTP

    • 締切済み
    • PHP
  • phpのファイルの転送

    サイトのトップページに一行掲示板を載せたいのですが はじめてで何処にアップロードしていいやら解かりません どうか詳しく教えて頂けますか? サーバーはland.to http://www.land.to/faq.php#ID10 転送にはいつもFttpかホームページビルダーを使っています。今回、アップロードしたい掲示板はhttp://www.phpweb.jp/lineboard/ あと、この掲示板のphpのファイルはフォルダにいれて送信しても良いのでしょうか?

  • PHPを使い転送

    http://******/ (index.php) にアクセスすると 瞬時に http://******/index.cgi に転送するようにするには どうしたらいいのでしょうか ソースまたは、参照URLを 書いてくれるとうれしいです あとで補足されても困りますので 先に・・・・ 今使用しているサーバーが http://******/ (index.cgi を読み込んでくれないんです ですが PHP(index.php)ですと 読み込んでくれるので 転送PHPを必要としています

    • ベストアンサー
    • PHP
  • ファイル転送バッチファイル転送について

    まだまだ初心者ですが、ファイル転送のバッチファイルを作成しています。 ファイル転送の部分は別サーバにてファイル転送できるのですが、ドメイン認証がうまくいきません。 ご教授願います。 WinNTserver AAA(ドメインa)のC:\abc から Win2003ServerBBB(ドメインb:ActiveDirectory)のE:\def(defは共有フォルダ)へファイルを転送する --------------------------------------- net use \\BBB\def /user:b\ユーザ名 パスワード MOVE C:\abc\*.* \\BBB\def ---------------------------------------- 上記ではうまくファイル転送できません。 お分かりの方いらっしゃいましたら、よろしくお願い致します。

  • URLの自動転送について

    今回、サイトの移転にともない、URLを自動転送 したいと思っております。 META タグを使用して、<META HTTP-EQUIV="Refresh" CONTENT="10;URL=http://~index.html">などで トップページを転送できるということまではわかったのですが、 それ以外のページをどのようにして転送したらよいのかがわかりません。 例えばドキュメントルートにtestというフォルダがあり、 その中に1.html,2html,3htmlと複数ファイルあった場合に すべて新しいサーバに自動的に転送したいです。 (できれば1.html,2html,3htmlなどのファイルすべてに自動転送の設定を  せずに転送したいです。)  旧:http://www.aaa.co.jp/test/1.html       ↓ (自動で転送)  新:http://www.bbb.co.jp/test/1.html  ※2.htmlや3.htmlも同様に転送したいです。 ドキュメントルートにあるフォルダやファイルの構成自体は まったく変わらないため、http://www.aaa.co.jp/test以下に あるコンテンツはすべてhttp://www.bbb.co.jp/testに 自動転送できるような方法はありますでしょうか。 なお、今回使用しているサイトが入っているサーバは OS:Windows2000Server、WebサーバとしてApacheを動かしており 設定変更などは自由にできる環境です。 何か参考になるページなどがあれば教えて頂ければ幸いです。

  • 転送ファイルがURLで見れない

    初めてホームページに挑戦してます。 ビルダー2001で作成したサイトの転送は、「正常に転送しました」のメッセージは出ますが、URLで開くと真っ白画面でファイルの中身がありません。 なお、ファイルやリンクのトップページ(/index.html)の編集では画面が出ます。 どなたか問題解決方法を教えてください。

  • index.htmlからindex.phpへ

    .htaccessファイルを使ってトップページ(index.html)にアクセスした時に(index.php)に移動できるようにして(index.php)が、トップページに変わるようにしたいのですが方法が分かりません。 借りているサーバーは対応するようです。 自分でも検索してみましたがよく分かりませんでしたので質問しました。 ご存知の方がいれば教えてほしいです。 よろしくお願いします。

    • 締切済み
    • PHP
  • phpプログラムの転送量を少なくする方法

    現在レンタルサーバーでphpのウェブアプリを運営しています。 phpの転送量を削減したいのですが、 良い方法がありましたら、教えて下さい。 phpのファイルサイズが1Mバイトを超えてしまいました。 転送量を少なくしたいのですが、次のようなプログラムは効果があるのでしょうか? <?php $a = ""; if($a == 0){ include_once("function0.php"); function0($a); }else($a == 1){ include_once("function1.php"); function1($a); } ?> 場合分けで分割して、プログラムを読み出すというものです。 あとapcでキャッシュしています。 root権限があるので、サーバー設定でも構いません。 phpの転送量を少なくする方法がありましたら、教えて下さい。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPの変数の渡し方

    現在以下のような位置関係のファイルでa.phpからb.phpに変数を渡したいのですが、うまく行きません。 ├dir1 │ └a.php └dir2   └b.php a.php <?php public function a(){ $value = "test"; } ?> b.php <?php public funcition b(){ print($value); } ?> phpについてwebで調べ、a.phpで$valueをglobalにしてb.phpでは 関数内でinclude('../dir1/a.php')を記述して$GLOBALS['$value']を 使ってみたのですが、うまく値がとれませんでした。 a.phpで変数をテンプレートに設定して $smarty->Set('Value', $value); それをb.phpで取得しようとしたのですが $smarty->getTemplateVars(Value); 取得する事ができませんでした。 同じようにgeTTemplateVarsを使って別のphpでは取得出来たりするのですが、 このsmartyのスコープ?というのもわかりません。 phpScheduleItというスケジュール管理のパッケージを触っていて、 php自体初めてで深い実装が全て追えていません。 勉強不足で申し訳ないのですが、何かヒントとなる事がありましたらご教示頂けますでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう