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

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

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

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

Webサイト

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

PHP

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

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

Q&A

解決済

2回答

1181閲覧

パラメータ次第でリダイレクト

fkshin

総合スコア12

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

Webサイト

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

PHP

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

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

0グッド

0クリップ

投稿2021/03/09 08:34

htaccessが使えないサイト内でのリダイレクトがしたいのですが、一部うまくいかなくなっています。

実現させたいこと

パラメータが付与されたページのリダイレクト

試したこと

元々はincludeされるphp内に

php

1<?php 2 if($_SERVER['PHP_SELF'] == "/hoge1/index.php"){ 3 header("Location: https://sample.com/1/",true,301); 4 exit(); 5 }else if($_SERVER['PHP_SELF'] == "/hoge2/index.php"){ 6 header("Location: https://sample.com/2/",true,301); 7 exit(); 8 }else if($_SERVER['PHP_SELF'] == "/hoge3/index.php"){ 9 header("Location: https://sample.com/3/",true,301); 10 exit(); 11 } 12?> 13

といった具合でリダイレクトを複数入れてそれは成功していました。
その作業内で、URLにパラメータが付与されているページだとうまくいかなくなってしまいました。
例)index.php?pnum=34

素人なりにやってみたこと

php

1<?php 2 if($_SERVER['PHP_SELF'] == "/hoge1/index.php"){ 3 header("Location: https://sample.com/1/",true,301); 4 exit(); 5 }else if($_SERVER['PHP_SELF'] == "/hoge2/index.php"){ 6 header("Location: https://sample.com/2/",true,301); 7 exit(); 8 }else if($_SERVER['PHP_SELF'] == "/hoge3/index.php"){ 9 header("Location: https://sample.com/3/",true,301); 10 exit(); 11 }else if isset($_GET['pnum'] == "34"){ 12 header("Location: https://sample.com/34/",true,301); 13 exit(); 14 } 15?> 16

と入れてみたのですがうまくいかず…
htaccessでリダイレクトさせようかと思ったのですが、クライアント側からそれ以外の方法がいいと言われてしまったのでphpでなんとかする以外思い浮かばず……

知恵をお貸し下さい…!

よろしくお願い致します!

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

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

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

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

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

guest

回答2

0

原則として$_SERVER['PHP_SELF']は使ってはいけません
XSSのセキュリティ問題があります

$_SERVER['SCRIPT_NAME']をご利用ください。
ただしPHP_SELFでもパラメータ以下は参照しないはずですが・・

投稿2021/03/09 09:22

yambejp

総合スコア114839

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

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

fkshin

2021/03/09 10:13

ありがとうございます! 助かります! 上記変更致します! パラメータ以下の参照方法がわからないなかでセキュリティ問題が解決できるのは嬉しいです。 助かりました。
guest

0

自己解決

https://teratail.com/questions/102168

こちらで解決しました!
ありがとうございました!

投稿2021/03/10 09:00

fkshin

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問