動的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です。
静的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が付与されるようになっていました。