Skip to content

html_anchor.rb

TADA Tadashi edited this page Nov 10, 2017 · 2 revisions

概要

アンカーを「YYYYMMDD.html」「YYYYMM.html」形式に置き換える

tDiaryの各ページのURLは、「?date=YYYYMMDD」のような形式が標準です。しかし、このような明らかにCGI呼出しに見えるURLは、検索エンジンによってインデックスされにくいとされています。この形式を「YYYYMMDD.html」に変えることで、いかにも静的なHTMLであるかのように見せかけることができ、検索エンジンにひっかかる可能性が高くなります。

使い方

プラグインをインストールするだけで、アンカーの形式が「YYYYMMDD.html」になります。

しかし、Webサーバの設定を変えないと、これだけでは正しく呼び出せません。 Apacheを使う場合、以下の3つの方法が知られています。

mod_rewriteと合わせて利用する(推奨)

Apacheのモジュールであるmod_rewriteがインストールされている必要がある。httpd.confで、以下のように設定します。「/home/httpd/html/diary/index.rb」の部分は、自分の環境に合わせて書き換えて下さい。

RewriteEngine on
RewriteRule ^/diary/([0-9\-]+)\.html$ /home/httpd/html/diary/index.rb?date=$1

.htaccessで設定する場合は RewriteEngine on RewriteBase /diary RewriteRule ^([0-9-]+).html$ index.rb?date=$1

RewriteBase のディレクトリは環境に応じて書き換える。

ErrorDocumentを利用する

.htaccessに以下の設定を追加する(your_URL_of_index.rbはあなたの日記のindex.rbのURLに)。ただしこの手法は、Webサーバのエラーログが膨れ上がるので、推奨できません。上のmod_rewriteが使えない場合のみの最終手段です。

<Files ~ "^([0-9]{4}|[0-9]{6}|[0-9]{8}|[0-9]{8}-[0-9]+).html$">
ErrorDocument 404 your_URL_of_index.rb
</Files>

Actionを利用する

.htaccessに以下の設定を追加する(your_URL_of_index.rbはあなたの日記のindex.rbのURLに)。ErrorDocumentを利用する場合と異なり、エラーログに無駄なログが表示されない利点があります。欠点は yyyymmdd.html 形式の静的な HTML ファイルを表示できなくなることです(通常の使用では問題になりません)。

<Files ~ "^([0-9]{4}|[0-9]{6}|[0-9]{8}|[0-9]{8}-[0-9]+).html$">
Action text/html your_URL_of_index.rb
</Files>

備考

[セキュア可]

その他

Clone this wiki locally