【9日目】短いURLをつくるのにすごく便利な.htaccess、のはずが…
Posted: Last Update:
お小遣いを稼げるサイトを目指して、9日目になりました。全く進んでいませんが、サイトの形が見えてきたので楽しいです。
ロードマップ
今日やることを準備したロードマップで見ると、
- 準備 - サイトの全体像を決める
- 使用するプログラミング言語を決めて環境を整える
- サイトの基本構造を作って公開する
- 大枠の作成
- ヘッダの作成
- フッタの作成
- メイン部分の構成を作成
- リンクを開いた時の動きを作成 ← 今ここ
- ナビゲーションバーの作成
- メインコンテンツの作成
- 関連情報エリアの作成
- 公開
- 収益化に最適なサイトにアップグレードする
- GoogleアドセンスとAmazonアソシエイトの申し込みをする
- ローカルで簡単に入力ができるようにフォームを作る
- フォローアップ - より収益化に向いたサイト構造に変更する
昨日からロードマッブが少し変わりました。 最初はナビゲーションやコンテンツの形を作ってからリンクの働きを決めようと思っていました。でも、リンクの働きを最初に決めて、それをナビゲーションやコンテンツに入れていく方が、効率がよさそうです。
リンクを作る前に課題を解決したい
今日はリンクの働きを作りたいです。
しかし!その前に、いくつか気になっていたことを調べて解決したいです。コードを書いたり、検索する間に、疑問を感じていたことがありました。おおごとになる前に解決しておきたい。 こういうの何でしたっけ?ハインリッヒの法則?ちょっと違うような…。覚えている人がいたら教えてください。
これまでの疑問点- PHPでPHPファイルを呼び出せないのはなぜか
- 今、左側のナビゲーションバーにnavを使っているけれど、menuとnavの違いは何か
- txtファイルの文字列を呼び出すときに、ファイルがなくても探し続けるのを止める方法
特に3番はタイムアウトの原因にもなるし、サイトのビジターに優しくないので、今のうちに解決しておきたいです。 上から順番に検索していきましょう。
PHPからPHPが呼び出せない
まずは「1.PHPでPHPファイルを呼び出せないのはなぜか」。 検索しても、検索しても、ただただあふれ出てくるWordPressに関する情報…。世の中の人はみんなWordPressを使っていると勘違いしそうになる…。 それでも、手を変え品を変えしているうちに、xml versionというキーワードが出て来た。でも、なんか違うような…? なんとなくxml versionについて検索しているうちに、Content typeやらエンコードなどの指定もまだしていないことに気付きました。HTML文書のhead部分に入れるあいつらです。セキュリティの設定の時にまとめてやろうと思っていたけれど、取り合えず入れてみよう。
早速実験です。Xml versionの宣言と、Content typeの宣言を入れ、txtファイルをphpファイルに置き換えて(拡張子を変えただけ)呼び出してみると、…PHP(今はtxtファイルだけれども)が表示された! どちらが原因か分かりませんが、改めてセキュリティ設定の時に調べるのでこの調査はいったん終了させます。また問題が起こったら調査を再開しようと思います。
HTMLタグのmenuとnavの違い
次は「2.今、左側のナビゲーションバーにnavを使っているけれど、menuとnavの違いは何か」ですね。 昨日作業している中で、自分で「ナビゲーションバー」と呼んでいる部分はきっとnavが適切に違いないと思い込んでいたのですが、menuというものも検索に出てきました。本当はどちらが適切なのか、検索してみます。
今、menuはほとんど使われていないらしい。私が今回使うのはnavでいいでしょう。これは簡単に解決できました。
ファイルがない時に探すのを止める方法
一番重要な「3.txtファイルの文字列を呼び出すときに、ファイルがなくても探し続けるのを止める方法」について調べていきます。 txtファイルにベタ打ちしている日記の文章を呼び出すのに、一時的に使っているPHPの構文に次のようなものがあります。
$filename = 'ファイルパス';
$fp = fopen($filename, 'r');
while (!feof($fp)) {
$txt = fgetss($fp, 4096, '<h1>');
echo $txt.'<br>';}
fclose($fp);
?>
これで、改行入りでtxtファイルを呼び出せます。ところが、ファイル名を間違って打ち込んでしまった時に、ファイルが存在しないのにいつまでも探し続けてしまいました。なんとも勤勉なコマンドです。 でもね、「とってこい」の対象物がなかったら、「なかったよ」って教えてほしいの。 というわけでgoogle先生に解決方法を聞きました。PHPでファイルの有無を調べる方法、と検索したら、そのままの語句でたくさん結果が出てきました。出て来た構文をそのまま使いまわしました。
$filename = 'ファイルパス';
if (file_exists($filename)) {
先ほどの構文をそのまま入れる
} else {
echo "$filename は存在しません";
}
?>
おそらくファイルの場所とかを指定した方がいいのでしょうけれど、今は「一時的に」使っているだけなので、とりあえず今はここまで。 それというのも、今日の大仕事であるリンクの作成の際に、おそらくファイルの場所の指定も入れることになるから。必要になったときに詳しく確認したいと思います。
リンクの作成にとりかかる
疑問も解決したので、今日のメインイベントである、リンクの作成に移りたいと思います。
かつて(20年前…)HTMLでサイトを作っていた時には、各ページに専用のファイルがあって、URLを入れるとそのファイルが呼び出されました。 今回は、URLごとの専用のファイルというものがありません。 かわりに、呼び出す情報に応じてHTMLページとURLを同時に生成します。逆に、打ち込まれたURLに応じてHTMLページも生成されます。この時にとっても短いURLを指定できるらしい。 PHPすごい。まるで錬金術!(精製違い…。)
今のところできているのは、イメージだけ。具体的なことは何も分からないので、ちょっとずつ確認していきたいと思います。 検索しまくって、まず分かったのは.htaccessというファイルが必要と言うこと。紹介しているページに、「WorPressを使っている人は~」とか「Apacheがある場合は~」とかの記述が多くて焦りました。やっぱりWordPress必需品だったんじゃないの?」って。で、まぁ、いろいろ検索した結果、最終的に必要じゃないことが分かりました。ほっと一安心です。
.htaccessと言う未知のファイル
私がやりたい「URLから自動的にページを生成するPHP」を作るには.htaccessというものが必要だということがとりあえず分かりました。 サーバーにある.htaccessファイルを見るには、FTPクライアントソフトが必要とかなんとか書いてある…。ロリポップのサイトにあるFTPクライアントサービスでいけると思ったけど、FTPクライアントソフトはやっぱり必要なのかぁ。20年前も使用していたFFFTPをダウンロードして使用することに決めました。 FFFTPをダウンロードして、いろいろ設定して。ファイルを覗きに行くと、そのようなファイルはない!?あれ?なんかサーバー側で設定しているセキュリティとかあるから、もとから準備されているものがあるのかとか、思っていのだけど…。
ここまででずいぶん時間を使ってしまったのですが、ロリポップのサイトに.htaccessについて詳しく書いてありました…。ここを見たら.htaccessでなんでもできると言う内容ではありませんが、最初からここに行きついていればかなり手間が省けていたきがする…。 要約すると、勝手に作って勝手にアップロードしろ、と。(要約し過ぎ)
FFFTP必要なさそうだから、一旦抜いておこう。
.htaccessの作成をはじめたが…
では、気を取り直して、.htaccessを使ったリンクの設定を行いたいと思います。 どうやるんだろうねぇ。また検索です。 で、ここで重要な情報に行きあった。「IISでは.htaccessを使えない」。つまり、私が設定したローカルサーバーでは.htaccessのテストができない…。ええっ!大事なところなのに!どうしてっ?
検索したら、OSなるものが違うそうです。WindowsはWindowsというOSです。(イメージでしか理解してないけど) で、ロリポップのサーバーのOSを調べると、Linux系でした。Apache。 …。WindowsのIISで、ローカルでのテスト環境を手に入れたと思ったのに。
で、ここで今日はタイムアップです。
明日は、WindowsのIISにさよならを告げて、Linux系のApacheが動くサーバー環境をローカルに作りたいと思います。 遠回りしてるなぁ。