質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

362閲覧

a.html(a.php)のURLを入力するとb.html(b.php)のURLのページを表示させたい

doreiku_uroko

総合スコア37

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/09/23 06:15

a.html(a.php)のURLを入力するとb.html(b.php)のURLのページを表示させたいです
c.html(c.php)のURLを入力するとd.html(d.php)のURLのページを表示させたいです

遷移のページの場合分けはCSVファイルで

入力URL,表示するページのURL
a,b
c,d
defy,e

で書かれた情報を元に遷移させたいです
これは可能でしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

考え方は3つ

  • a.phpを実際につくっておいてb.phpにとばす

phpであればa.phpに

PHP

1header("Location:b.php");

を記載してあればとびます。
htmlであればmetaタグのrefreshでとばしてください

  • a.phpでb.phpをfile_get_contentsなどで読み込んで出力する

  • httpサーバーの機能を利用する

たとえば.htaccessでリライトする

RewriteRule a.php b.php

※無条件で設定をするとアクセスできないページが発生するのでよくよく運用には気をつけて下さい

投稿2017/09/25 01:53

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2017/09/25 02:26

CSV の設定ファイルで転送を決めるそうです。三つ目は難しいのではないでしょうか? 一つ目と二つ目も、可能ではあるけれど同じ内容のファイルを量産しなければならないように思います。
guest

0

ベストアンサー

CSVの1カラム目の「a, c, defy」と2カラム目の「b, d, e」が同じディレクトリに配置されているとして下記ではいかがでしょうか。

php

1//現在画面のPHPファイル名 2$current = basename($_SERVER['SCRIPT_NAME']); 3 4$fp = fopen('CSVファイルパス', 'r')); 5if ($fp === false) { 6 //CSVオープンエラー 7 exit(); 8} 9 10while (($data = fgetcsv($fp)) !== false) { 11 //現在URLパスがマッチしたら、2カラム目のパスをインクルード 12 if (! empty($data[0]) && ! empty($data[1]) && 13 strcmp($current, $data[0]) === 0 && 14 file_exists($data[1])) 15 { 16 include_once($data[1]); 17 break; 18 } 19} 20fclose($handle);

CSVのフォーマットがスラッシュから始まる相対パスのURLの場合は下記のようにできます。この場合もCSVの1カラム目と2カラムのディレクトリは同じである前提にしています。

php

1//現状のURI 2$current = $_SERVER['REQUEST_URI']; 3 4if (strpos($current, '/') === 0) { 5 $current = ($_SERVER['SERVER_PORT'] == "80" ? 'http://' : 'https://').$_SERVER['SERVER_NAME'].$current; 6} 7 8//現在画面のスラッシュから始まる相対パスURL 9$current = parse_url($current, PHP_URL_PATH); 10if ($current === false) { 11 //URIパースエラー(リクエストURIが不正など) 12 exit(); 13} 14 15$fp = fopen('CSVファイルパス', 'r')); 16if ($fp === false) { 17 //CSVオープンエラー 18 exit(); 19} 20 21while (($data = fgetcsv($fp)) !== false) { 22 //現在URLパスがマッチしたら、2カラム目のパスをインクルード 23 if (! empty($data[0]) && ! empty($data[1]) && 24 strcmp($current, $data[0]) === 0) && 25 file_exists(basename($data[1]))) 26 { 27 include_once(basename($data[1])); 28 break; 29 } 30} 31fclose($handle);

投稿2017/09/24 01:02

Tomak

総合スコア1652

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まずリクエストの全てを適当な URL に遷移させます。例えば a.html へのリクエストであるならば /index.php?q=a.html のように。

そして/index.php では、指定された元々のリクエストの URL と CSV の内容から返すべきコンテンツを生成して返してください。

投稿2017/09/23 06:29

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

doreiku_uroko

2017/09/23 08:28

まずリクエストの全てを適当な URL に遷移させます。 すみません、これがよくわからないです。 a.htmlと打ち込んだらどうすれば良いのですようか
Zuishin

2017/09/23 08:54

サーバーの設定を変更する必要があります。方法はそれぞれのサーバーで違います。Apatch であれば .htaccess が使えるかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問