動的コンテンツのロボット対策(PHP版)

投稿日:

SEOの一環として、動的コンテンツもロボット対策が行えます。

※環境は、WindowsのApache2.0.55, PHP5.1.1で確認しました。
----------------------------------------------------------------------------
1.httpd.confの修正
----------------------------------------------------------------------------
まずmod_rewriteモジュールを設定します。
特にインストールしなくても最初から入っていると思います。
httpd.confでは初期はコメントアウトされているので、
コメントを解除してください。

LoadModule rewrite_module modules/mod_rewrite.so
※念の為、$APACHE_HOME/modulesにモノがあるか確認しましょう。

次に.htaccessの設定します。
以下の行を探し、適切なファイル名に変更します。(Windowsの場合のみ)

AccessFileName .htaccess

kは以下のようにしました。
#AccessFileName .htaccess
AccessFileName htaccess.htaccess

で、そのすぐ下にある
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
</FilesMatch>
を以下のように修正します。
<FilesMatch "htaccess.htaccess">
    Order allow,deny
    Deny from all
</FilesMatch>

そして該当ディレクトリのAllowOverrideディレクティブを変更しました。
#AllowOverride None
AllowOverride All
※ローカルなので緩く設定しました。皆さんは適切に設定してください。

----------------------------------------------------------------------------
2..htaccess/phpファイルの作成・設置
----------------------------------------------------------------------------
.htaccessと該当アプリのPHPを作成します。

●.htaccess
DirectoryIndex mod_rewrite.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9A-Za-z]+)/([0-9A-Za-z)]+)\.html$ mod_rewrite.php?var1=$1&var2=$2 [L]

●mod_rewrite.php
<?php
echo "引数は「$_GET[var1]」と「$_GET[var2]」です。";
?>

これらを$APACHE_HOME/htdocs/php/urlrewriteとベタなディレクトリにおきました。

----------------------------------------------------------------------------
3.アクセスして確認
----------------------------------------------------------------------------
ブラウザにて、http://localhost/php/urlrewrite/100/200.html へアクセスします。
すると、

引数は「100」と「200」です。

と表示されます。
内部的に.htaccessを利用して、mod_rewrite.phpへ引数が渡されたのでした。

参考URL
Apache HTTP サーバ バージョン 2.0 ドキュメント
動的ページを静的ページにする (mod_rewrite)
動的だけど静的なページの作成 (mod_rewrite)
Windows環境でApacheの.htaccessを使うには