デジットさんの生活便利サイトトップへ デジットさんの動的ページを静的ページに見せる(PHP)

トップページ > ホームページ作成 > 動的ページを静的に

PHPで引数を利用した動的ページを作成すると、簡単にページを増やすことが出来ます。「AmazonECS」も利用できます。ただ、単純に引数を利用すると検索エンジンに引っかかりにくくなりますので、静的ページに見せましょう。

動的ページは検索エンジンから敬遠される

検索エンジンは、動的ページ(引数から呼ばれたページ)と判断すると、あまりクロールしてくれないようです。ところが、Amazon Web サービスの本家Amazonのページは動的ページですが、引数を示す「?」や「=」などは 余り使われていません。「?」や「=」がないと、検索エンジンは静的ページと判断してクロールしてくれることが多いようです。
そこで、動的ページを静的ページに見せる方法をお教えします。

動的ページを静的ページに見せる方法

動的ページを静的ページに見せる方法はいくつかありますが、代表的なのは次の2つと思います。

  1. 「mod_rewrite」を使う方法。
     「.htaccess」ファイルで引数をファイルらしく置き換えます。
  2. 「PATH_INFO環境変数」を使う方法。
     実際にあるパスに余分についている情報を利用する。

「mod_rewrite」を使うのが一般的なようですが、ここでは、「PATH_INFO環境変数」を使う方法を説明します。引数の種類が多かったり、長い引数を使いたい場合はこちらのほうが便利そうなのが、理由です。
次に、「PATH_INFO環境変数」を使ったサンプルリストを示します。通常は、「http://www.***.test/pathinfo.php?a=123&b=%E3%83%86%E3%82%B9%E3%83%88&c=4」の様に書きますが、 「http://www.***.test/pathinfo.php/123/%E3%83%86%E3%82%B9%E3%83%88/4/」のように記載することが出来ます。「pathinfo.php」で、次のリストの様に引数を受けとれるようにします。
実際にあるパスに余分についている情報は、PATH_INFOに送られます。これを参照することで、パラメータの代わりに使えます。今回は、「explode('/', $_SERVER['PATH_INFO'])」で、引数をスラッシュ("/")で分解し利用しました。分解したデータは、「list()」関数を利用し「$_GET[]」関数で受け取ります。最初のデータは'null'ですので「list()」のパラメータの最初は','から始まっています。この1行だけで引数を受け取ることが出来ます。後は、通常の引数の様な処理でOKです。引数はurlエンコードされたデータもOKです。但し"/"をurlエンコードした「%2F」があると、サーバーエラーになります。エラーにしない方法は、動的ページを静的に2をご覧下さい。例では、「テスト」をurlエンコードした「%E3%83%86%E3%82%B9%E3%83%88」を使いました。引数のパラメータは1つでもOKです。
phpファイルの拡張子「.php」は省略して、「http://www.***.test/pathinfo/123/%E3%83%86%E3%82%B9%E3%83%88/4/」でも、大丈夫です。これなら、引数には見えづらくなります。サーバーの設定によっては、拡張子「.php」が省略できない場合がありますので、その場合は「.htaccess」ファイルに「Options +MultiViews」という一行を加えてください。

「PATH_INFO環境変数」を使ったサンプルリスト

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>引数を静的ページに見せる(PHP)</title>
</head>
<body>
<?php
list(,$_GET['a'], $_GET['b'], $_GET['c']) = explode('/', $_SERVER['PATH_INFO']);//文字列を'/'で分割する
echo "パラメータaは、{$_GET['a']} です<br>";
echo "パラメータbは、{$_GET['b']} です<br>";
echo "パラメータcは、{$_GET['c']} です<br>";
?>
</body>
</html>

「PATH_INFO環境変数」の実行結果

パラメータaは、123 です
パラメータbは、テスト です
パラメータcは、4 です

これで、動的ページを静的ページに見せる基本動作が出来ました。
レンタルサーバーのロリポップでは、動作確認できています。

ホームページを公開するレンタルサーバーは、 ロリポップ! がお薦め、 PHP5を使うならPHP5から選ぼう。

関連ページ

ホームページ作成

アフィリエイト

デジットさんのホームページ入門に移行中

スポンサード リンク

Amazon.co.jpアソシエイト:
PHP&プログラミング

売れている順 新刊順

:%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%20php :php2_  :5

とことん!ホームページホームページ入門役立つサイトデジットさんのリストラ日記仮福真琴の精神科医はうそだらけ

2005-2010 Copyright © Digit-01 All Rights Reserved.