.htaccessで動的URLを静的URLに変換してSEO対策

PHPファイルでpage.php?num=○○○という値を渡して、WEB上でアクセスすると、どうしても検索エンジンから見ると、動的なURLとなり、インデックスされにくくなります。
※全くされない訳ではないですよ
これは、SEO対策を考えたとき、できればクリアしたい問題ですね。。。
そこで、今回は、.htaccess を使って、動的URLを静的URLに変換してみようと思います。


まず確認することは、
使用しているサーバーでは.htaccessファイルを使うことができるかどうか確認が必要です。

OKだったら、
【1】.htaccessのファイル作成(ファイル名:htaccess.txt)
【2】htaccess.txtに下記ソースを記述(これで動的URLを静的URLに変換する)
【3】htaccess.txtをサーバーにアップしてファイル名を.htaccessに変換
って感じでOKだと思います。

htaccess.txtの中身

RewriteEngine on
RewriteRule page\-([0-9A-Za-z)]+)\.html$ page.php?num=$1

これは、簡単に言うと、
page-1.htmlというファイルにアクセスしてきたら、
page.php?num=1と同じものを表示する
という記述です。

このようにしておけば、
検索エンジンからは、
htmlファイルが存在するように見なされ、
静的URLと検索エンジンは認識します。

例えば、page.phpに

<?php

//GETを取得   page.php?num=$1
$f_num_get = $_GET['num'] ;
$f_num = $f_num_get;

print <<< DOC_END
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>.htaccessで動的URLを静的URLに変換してSEO対策</title>
</head>
<body>
DOC_END;

print  "<table border=\"1\" cellspacing=\"0\" cellpadding=\"5\">\n";
$list = "list.csv";
$fp   = fopen($list,"r");
while($deta= fgets($fp)){
    list($a1,$a2,$a3) = split(",", $deta, 3);
    if($f_num == $a1){
        print  "<tr>\n";
        print  "<td>$a1</td>\n";
        print  "<td>$a2</td>\n";
        print  "</tr>\n";
    }
}
fclose($fp);
print  "</table>\n";

print <<< DOC_END
</body>
</html>
DOC_END;

?>

を記述して、
list.csvを簡易データベースとして、

1,山田太郎,25歳
2,鈴木次郎,18歳
3,山本仁,35歳

というファイルを作ります。

.htaccessを下記のように作りサーバーにアップします。

RewriteEngine on
RewriteRule page\-([0-9A-Za-z)]+)\.html$ page.php?num=$1

すると、

page-1.html にアクセスすると、page.php?num=1と同じ内容が表示されます。
page-2.html にアクセスすると、page.php?num=2と同じ内容が表示されます。
page-3.html にアクセスすると、page.php?num=3と同じ内容が表示されます。

-->