ブログで投稿したページはどこに保存されているんだろう

WordPressで投稿したページをサーバー内のどこを探してもみつからない

通常、一般的な個人サイトなどは、一つのページが一つのHTMLファイルとかPHPファイルになっている

WordPressはじめブログの場合は、記事を投稿するたびに新しいファイルを生成する訳ではないらしい

ブログではないが、例えばYahoo!で検索した結果ページが一つのファイルとして保存されているとは考えにくい

あんな膨大なページが全て一つずつファイルを占有してたら、どんだけサーバーがあっても足りないよね

それじゃどうやって投稿した個別の記事を、あたかも一つのページのように見せるのだろう

まず、新規に記事を投稿すると、タイトルや時間など含め、すべてはDB(データベース)に送られて保存される

WordPressの場合はMySQLというフリーのDBを使う仕様になっている(他のDBも使えるようですが。。)

BDに保存された内容を、SQL文という言語で呼び出して、PHPで表示させるという仕組み

ここまでは理解していたし、自作ブログシステムでも採用している

ただ一つどうしても理解できなかったのは、中身はDB内にあるとして、アクセスするにはやはりファイルが必要なんじゃないかという事

アクセスするときはURLを指定する訳だし、各記事ページには個別にURLがある

通常だと、そのファイル名がURLになるから、ファイルが存在していないページにどうやってアクセスするのか不思議だ

URL情報は各記事が収まっているDB内のwp_postsというテーブルでみつけた

よーくよく考えてみたら、実際ファイルが無いのだから、ブラウザから要求がきたら何かの仕組みがそのURLを一時的に生成しなくちゃならない筈

ガワはトップページ、いわゆるindex.phpと同じデザインなわけだからindexが何か関係ありそう

試しにindex.phpを一旦削除してみて、個別記事のURLにアクセスするとどうなるかやってみた

キターーーーーーー!

開かない!!

つまり、個別ページを生成するというよりは、アクセス要求が飛んでくると、何者かがindex.phpに誘導しているのだ

だから個々の記事ページファイルが存在していなくても、あたかもあるように見えている

つまりはhttps://osamushi.jp/post_page/というページにアクセスしても、実際はhttps://osamushi.jp/index.phpというファイルを参照している事になる

ん~読めてきた

だが一体何者がそんな大仕事を担っているのか

HTMLはもとより、PHPでもそんな芸当はできない

WordPressのファイルをくまなく探しても、そんな複雑な感じのプログラムは見当たらない

ん、

まてよ、

アクセス関連に携わる、よくわからないヤツが一人いたっけ

そう

.htaccess

そうか!

さっそく中をみてみると確かに”Rewrite”とか”index.php”がどうとか書いてある

構文まではわからないが、どうやらコイツが、飛んできた要求に対してindex.phpを違うURLに見せかけるという作業をこなしているというので間違いなさそう

自作ブログシステムでは、投稿するたびにファイルを生成しているので、どんどんファイルが増えていく仕組みなんだが、ここを勉強すれば、もうちょいスッキリしたブログシステムになりますな。osamushi

コメント