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

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

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

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

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

1回答

926閲覧

クエリパラメター無しのURLにアクセスしたら、自動的にクエリパラメタを付加したURLに飛ばしたい。

kimukimu009

総合スコア33

PHP

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

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2018/07/03 06:33

■実現したいこと(概要):
クエリパラメター無しのURLにアクセスしたら、自動的にクエリパラメタを付加したURLに飛ばしたい。

■実現したいこと(詳細):
1.現在、クエリパラメターを使って、DB連携で表示させるようなプログラムを
作成している。

2.具体的には、  
http://◎◎◎.php?lan=en

  であり、この場合、

  ◎◎◎.phpのプログラムの中で、

  DBから、「lan=en、即ち言語がenglish」のものを抽出して、
表示させています。

3.当然のことながら、
単純に、クエリパラメター無しの
http://◎◎◎.phpにアクセスした場合には、
正常な表示がなされません。

4.やりたいこと:

  具体的には、
http://◎◎◎.phpへのアクセスがあった場合に、

  自動的に、
http://◎◎◎.php&lan=en

という具合に、クエリパラメターを付加して表示させたい。
.htaccessへ記載すればいいのでしょうか?

(追加の質問)
・.htaccessに記載する方法の場合、SEO対策的には有効な方法と考えられるの
でしょうか?

以上、よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

求めておられる回答と違うのかもしれませんが、php側で送信された値を受けてますよね。そこでlanがない、とかlanが想定した値でないときに、lanのデフォルト値をセットしたらいいのでは?
(例えば悪意のある人が、lan=usとかにされてアクセスしたりすることが想定できるのでチェックしているのではないかなーと思いました)

※ 書式は少しでも間違うとエラーになってしまうので、Redirect Rewrite htaccessとかで検索してみてください。

投稿2018/07/03 06:42

papinianus

総合スコア12705

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

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

kimukimu009

2018/07/06 04:26

ご回答ありがとうございます。 ■まずは、頂戴しました Redirect Rewrite htaccess で現在、試行錯誤をしています。結果も共有いたしますので、今しばらくお待ちください。 ■なお、今回の質問の意図ですが、 「http://◎◎◎.php&lan=enの表示結果を、検索エンジン理解してもらい、上位に表示させていきたい」ということが、はじまりです。 現在では、http://◎◎◎.php&lan=enの存在すら、検索エンジンは知ってくれていません。 その理由として、 DBから、「lan=en、即ち言語がenglish」のものを抽出して、 表示させていることにより、動的にサイトを構成しているからではないかと 考えています。 したがって、 http://◎◎◎.phpをhttp://◎◎◎.php&lan=en に自動的に変換してくれれば、検索アルゴリズムにも、きちんと、本サイトを理解してくれるのではないか?と考えたからです。 よろしくお願いいたします。
kimukimu009

2018/07/13 03:49

解決しました!ありがとうございます。 .htaccessファイルを使うことはせず、isset関数を使うことで、解決しました! ■結論 phpファイルの、最初の行で、 <?php $lan = isset($_GET['lan']) ? $_GET['lan'] : 'en'; ?> を記載 ■コードの説明 ・isset関数を使うことによってクエリパラメターチェック ・三項演算子を使ってすっきりしたコードにする ■PHP動作の流れ ◎パターン1 http://◎◎◎.php?lan=en でアクセスされた場合は、isset関数を使うことによって、クエリパラメターをチェックし、$_GET['lan']があるので、$lan=$_GET['lan']として処理が進む。つまり、これまで通り http://◎◎◎.php?lan=enのURLとして表示される ◎パターン2 http://◎◎◎.php でアクセスされた場合は、isset関数を使うことによって、クエリパラメターをチェックし、$_GET['lan']がないので、内部的に、$lan='en';として、値を代入する この場合、URLとして表示されるのは、 http://◎◎◎.phpですが、 内部的には、 http://◎◎◎.php?lan=enにアクセスされた場合と 同じ処理が行われる
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問