(74) 自作HPでパーマリンクを使う。

投稿者: | 2018年10月29日

1. やりたいこと

WORDPRESSで当たり前のように使っているパーマリンク。

英語で書くと permalink

すなわち、恒久的なリンク

すなわち、ずっと変わらないリンク名ということだ。

例えば、以下のような URLでアクセスする最新情報閲覧ページがあったとする。

http://www.example.com/result.php?year=2018 ←(1)

この記述ルールに従えば、翌2019年には以下のようになるはずだ。

http://www.example.com/result.php?year=2019 ←(2)

同じ「最新情報が閲覧できるサイト」ではあるが、時間の変化とともにアクセス時の URLが変わってしまう。

そこで 2018とか 2019とかを隠ぺいし、いつでも同じ URLでアクセスできるようにしたい
でも、既存のプログラムには一切手を加えたくない。

つまり…
プログラムを一切いじらずに、いつでも

http://www.example.com/newinfo ←(3)

で最新情報閲覧ページにアクセスできるようにしたい。

2. やってみる

(1) Apacheの mod_rewite を使って実現する。

1) 基本

.htaccess に以下のように書いておく。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^newinfo$      result.php?year=2019 [L]
</IfModule>

すると (3) でアクセスして来た人にばれずに (2) を開ける。

すなわち…
閲覧者のWEBブラウザのアドレスバーには (3) が表示されているままなので、不自然なことなくばれずに (2) へ飛ばせるのだ。

2) 応用その1

もし、

http://www.example.com/newinfo?type=1

のように引数を渡す必要がある時は、L(Last つまり「ルールの定義はここまでで終わり」)の前に QSAを付ける。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^newinfo$      result.php?year=2019 [QSA,L]
</IfModule>

すると、以下のように展開されて所望の動作となる。

result.php?type=1&year=2019

これをしないと引数が消えてしまう。

3. 所感

ちょっと雑だが備忘録なので一先ずこれでよし。
mod_rewrite は使いこなせたら便利そうなので、そのうちにちゃんと勉強しよう。

参考情報

ありがとうございます。 m(_ _)m
https://www.dokuwiki.org/ja:rewrite
https://oxynotes.com/?p=7392
https://qiita.com/tkykmw/items/c1e2df5e96d9dad3a07a
https://ferret-plus.com/2186
http://wiki.bit-hive.com/tomizoo/pg/mod_rewrite%20-%20QSA%E3%83%95%E3%83%A9%E3%82%B0
https://html-coding.co.jp/knowhow/tips/wp_modrewrite/


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)