動的URLが多数ある

dtn.jpにはPHPで作成したページが多数あり、それらのPHPにパラメータを付けて渡す必要があるためGETパラメータをつけた動的URLが多数存在しています。

動的URLとは

URLの末尾に「?」を付け、その後に送信したい情報を「項目名=値」で追加して値をPHP側に渡します。

https://www.xxx.jp/test.php?mode=view&type=entry&blog_id=1

PHP側ではPHPで定義されたスーパーグローバル変数の$_GETに連想配列としてデータがセットされます。

先ほどのクエリであれば、test.php側ではこのように連想配列がセットされます。

$_GET["mode"];                      //viewが入っています
$_GET["type"];                      //entryが入っています
$_GET["blog_id"];                   //1が入っています

動的URLにはPageRankが付与されにくい

ブラウザツールバーのPageRankをみていると、この動的URLにはGoogle PageRankが付与されにくい印象があります。そこで、一部の動的URLを静的URLに変更して様子をみてみることにしました。

動的URLの静的URL化

テスト的に今回URLを変更したものは、画像の赤丸部分のリンク、dtn.jpのアクセスランキング、人気サイトランキングのURLです。

access_ninki_ranking.png
ランキングページでテスト実施

静的URL化の方法

PHPで定義されたスーパーグローバル変数の$_SERVERのひとつ、$_SERVER[‘PATH_INFO’]を利用して実現します。

①静的URLの形にパラメータを埋め込む

②PHPで$_SERVER[‘PATH_INFO’]からパラメータを取得

①静的URLの形にパラメータを埋め込む

このようにパラメータ丸出しになっているURLを変更します。

https://www.xxx.jp/member/check.php?mode=LOGIN

このような形であれば静的URLらしい雰囲気となりました。

https://www.xxx.jp/member/check/LOGIN

②$_SERVER[‘PATH_INFO’]からパラメータを取得

.htaccessで拡張子無しでもphpでファイル実行させる

checkと指定したものをcheck.phpとして開かせたいので、.htaccessでapacheに設定を入れます。

<Files check>
ForceType application/x-httpd-php
</Files>

$_SERVER[‘PATH_INFO’]から値を取得

$_SERVER[‘PATH_INFO’]の中には/LOGINが入ってますので、ここからLOGINだけ抜き出せば$_GET[“mode”]と同じようにLOGINととりだすことができます。

$params = explode("/",$_SERVER['PATH_INFO']);
$MODE = $params[1];                          //LOGINが入っています

おわりに

これでアクセスランキング人気ランキングにもPageRankが付くかもしれません。

追記:

一ヶ月たった頃、これらのランキングにもPageRankが付与されるようになっていました。