kamenokoki.com

【13日目】.htaccessに初挑戦!

Posted:  Last Update:

お小遣いを稼げるサイトを目指して、13日目です。

ロードマップ

ロードマップで進み具合を見ると、こんな感じです。

  • 準備 - サイトの全体像を決める
  • 使用するプログラミング言語を決めて環境を整える
  • サイトの基本構造を作って公開する
    • 大枠の作成
    • ヘッダの作成
    • フッタの作成
    • メイン部分の構成を作成
    • リンクを開いた時の動きを作成 ← 今ここ
    • ナビゲーションバーの作成
    • メインコンテンツの作成
    • 関連情報エリアの作成
    • 公開
  • 収益化に最適なサイトにアップグレードする
  • GoogleアドセンスとAmazonアソシエイトの申し込みをする
  • ローカルで簡単に入力ができるようにフォームを作る
  • フォローアップ - より収益化に向いたサイト構造に変更する

先にスマホの話をさせてください

ブログの件とは別に、スマホの電池を変えたことを一昨日ご報告していましたが、つい先ほど液晶パネルもご臨終になられました。液晶はついているんですけど、タッチパネルがきかない…。電池パックを交換したときに配線を触ってしまったのかもしれません。電池パックを交換してから順調に動いていたのに残念です。

タッチパネルが使えないスマホなんて、灯りが付いたり消えたりするちっちゃい箱でしかない…。でも、修理する自信はない…。

docomoに駆け込んで今日買える携帯にするか迷いました。でも、今のスマホもかかってきた電話は確か本体横のボタンを押せばとれるはず。あとはモバイルPCとタブレットを駆使すればどうにかなるかも。土日を挟んでいるし、遠出する予定もないし、ネットで注文したスマホが火曜日に届けば!実質スマホがなかった期間は1.5日くらいになる! というわけで、ほどほどの性能の安いやつをぽちっとしました。Xperiaは高かったのでやめました。Z3 Compact、確か3万円くらいで買ったと思ったんだけど…。後継機欲しかったなぁ。

今日は.htaccessに初挑戦

さてさて、スマホは視界に入らないところに押しやって、ブログ作成に取り掛かりましょう。

昨日は、PHPを利用してリンクを生成することができるようになったので、今日は.htaccessを使ってPHPページに情報を受け渡すようにしたいと思います。

検索していたら「疑似静的」というキーワードと出会いました。動的ページと静的ページって、PHPについて検索している間に何度も出て来た言葉でした。静的ページは決まったページ内容がブラウザに送られてくるもの、動的ページはブラウザ上で表示がかわるもの、というイメージです。 これから.htaccessでやろうとしている「要求されたURLで表示されるページを変える」というのは、ブラウザに送る内容は決まっているけれど、実際にはサーバーでPHPが動的に生成しています。なので「疑似静的」と呼ぶんですね。

さらに調べているうちに、一昨日「たぶんこうするんだろう」と思っていた動きとは少し違うことが分かりました。

今回作業として進めていく手順を決めました。
  1. URLで受け取ったデータをもとにページを生成するPHPを作る
    URL例: kamenokoki/index.php?category=blog&filenum=20200912
  2. .htaccessでページのURLを短縮URLにする
    URL例: kamenokoki/blog/20200912
  3. .htaccessで、2のURLが読み込まれた時に、1に変換する。

実際のところ、ループしているので3から作り始めてもいいのですが、3のテストは1がないとできないので1から作ろうと思います。

変数入りのリンクを作ってみた

「1.URLで受け取ったデータをもとにページを生成するPHPを作る」から取り掛かります。 まずは、昨日作ったリンクに変数を入れられるようにしてみました。これはのちのち必要なくなるものなので、本当にあくまでも仮。細かいことは気にしない。作ったPHPとリンクはこんな感じ。

<?php
date_default_timezone_set('Asia/Tokyo');
$today = date("Ymd");
$Oldest=20200801;

$i = 1;
do {
 $date = new datetime($today);
 $filename = "./blog/$today.txt";
   if (file_exists($filename)) {
     echo "<a href=index.php?category=blog&filenum=" , $today , ">" , $date->format('Y年m月d日') , "の日記</a> リンク: ./index.php?category=blog&filenum=" , $today , "</br>";
     $i = $i+1;
   }
 $date->sub(new DateInterval('P0Y0M1D'));
 $today = $date->format('Ymd');
} while ($i < 6);
?>

分かりやすいようにリンクを右側にベタ打ち(echo)で表示させています。 2020.09.12 リンクを作ってみた

変数入りのリンクを動かしてみる

次に、このリンクが動くようにしたいです。 取り急ぎ、先ほど設定した$categoryやら$filenumやらに入っている変数を取り出せるかテストしてみたいです。 問題なさそう。さっきまでなかった文字列が下の方に出ているのが画僧で分かると思います。

<?php
if(isset($_GET['category'])) { $category = $_GET['category']; }
echo "Categoryの値を表示:" , $category;
if(isset($_GET['filenum'])) { $filenum = $_GET['filenum']; }
echo "</br>Filenumの値を表示:" , $filenum;
?>

2020.09.12 リンクが動くようになった

次はこれをもとにページを表示してみたい。 ここでは、上の変数を読み込んで、「include」で単純にファイルを呼び出すだけにしました。見栄えはまた後日きれいにする予定です。

<?php include("./$category/$filenum.txt"); ?>

2020.09.12 リンクからページを開いてみた

動いた、動いた!第一関門突破ですね。

.htaccessを初めて触ってみた

次は「2..htaccessでページのURLを短縮URLにする」です。どうやらRewriteなるものを使うらしい。検索すると、パーマリンクとか、内的転送とか、いろいろなキーワードが飛び交っていたあいつです。楽しみだ!

.htaccessにRewriteを書き込むと「Internal Server Error」が出てしまう…。 楽しかった気分がしぼんできた…。

いろいろ検索して、Logなども見た結果、Apacheのhttpd.conf内の「LoadModule rewrite_module modules/mod_rewrite.so」がコメントアウトされていることがまず分かりました。先頭から#をとって有効にすると「Internal Server Error」は出なくなりました。

でも、今度は思った結果が得られない。「独自ドメイン/blog/20200912」というようなURLで、「独自ドメイン/index.php」に行きたいのに、どうしても「独自ドメイン/index.php」ではなく「独自ドメイン/blog/index.php」を探しに行ってしまう…。 どうして?

解決しないまま、今日も時間が来てしまいました。明日また頑張ります。

記事をシェアする

亀の子に連絡

ランキング参加中!ぽちっとしてね

F2cランキングアイコン 人気ブログランキング ブログランキング・にほんブログ村へ

広告