【25日目】いよいよサイト公開も、404エラーしか表示されない…
Posted: Last Update:
サイトを作成し始めて25日目です。やっとサイトの公開までこぎつけました!
ロードマップ
ここまでの進捗をロードマップで確認しておきましょう。長い道のりだったのに、ロードマップで見るとすごく短い…。
- 準備 - サイトの全体像を決める
- 使用するプログラミング言語を決めて環境を整える
- サイトの基本構造を作って公開する
- 大枠の作成
- ヘッダの作成
- フッタの作成
- メイン部分の構成を作成
- リンクを開いた時の動きを作成
- ナビゲーションバーの作成
- メインコンテンツの作成
- 公開 ← 今ここ
- 収益化に最適なサイトにアップグレードする
- GoogleアドセンスとAmazonアソシエイトの申し込みをする
- ローカルで簡単に入力ができるようにフォームを作る
- フォローアップ - より収益化に向いたサイト構造に変更する
404ページをきちんと作ってなかった…
いよいよ公開s思ったのですが、404(ページが存在しません)ページをきちんと作っていなかったことに気付きました。公開の前に作らないといけないですよね。既には箱は作ってあるので、後は見栄えをどうにかするだけです。
デザインや設定はindex.phpを流用しています。ど真ん中に「404 PAGE NOT FOUND ページが存在しません」と表示したい。その下には、とりあえずブログの一覧を入れておこうかな?将来的には検索ボックスとかも設置したいと思います。
「404 PAGE NOT FOUND ページが存在しません」の部分はh1を使ってすぐにできました。ブログの一覧は、今あるものを使いまわしてしまおう(楽だし)。index.phpに一覧を表示しているのですが、「blogtop.php」というファイルを呼び出しています。「blogtop.php」にはブログの紹介文と、一覧が同じファイルに入っています。まずはこれを二つに分けました。「blogintro.pnp」にはブログの紹介文を、「bloglist.php」にはブログの一覧を入れて、今回は「bloglist.php」のみ呼び出すようにします。
HTML(真ん中に表示される部分だけ)<h1> </br>404 PAGE NOT FOUND</br>ページが存在しません</br> </br></h1>
<p style="text-align:center;">↓↓↓↓お探しのページはこちらでは?↓↓↓↓</br> </br></p>
<?PHP include($mypath . '/main/bloglist.txt'); ?>
</article>
実際の画面がこんな感じです。
公開前にサーバの設定を確認
アップロードするファイルはこれで全て準備できました。いよいよ公開なのですが、その前にレンタルサーバをお借りしているロリポップの設定を確認していきたいと思います。セキュリティとか、いろいろ手厚くしてくれているらしい。
基本的にはロリポップのマニュアルを読んで一つずつ設定していくだけです。PHPの設定とか、.htaccessの利用法とか読み込みました。セキュリティもサーバー側で設定してくれているので、WAFの設定とか、SSLがきちんと設定されていることを確認。デフォルトで高いセキュリティになっていました。FTPアクセス制限も設定しました。これで安心。
読んだマニュアルの中で設定を保留したのが、エラーページです。ローカルでは.htaccssで設定しているのですが、本番環境では.htaccessでは設定できないのかな?ファイルをアップロードしてから確認して設定します。
サイト公開!!!!
最後にいろんなリンクをクリックして、動作におかしな所がないことを最終チェック。もうやれることはない!いよいよファイルをアップロードします。ドキドキする。
アップロード完了。
…404ページしか表示されない。
…とりあえず、自作した404ページが反映されているので、ロリポップが推奨するエラーページの設定はしなくていいことが分かりました。まずは良しとしましょう。他のページが表示されないのは、.htaccessが悪さをしているのでしょうか。一つずつ解決していくことにしました。
kamenoko.comに接続したらindex.phpを表示する
「kamenokoi.com」に接続したら、自動的に「kamenokoki.com/index.php」が表示されるようにロリポップ側で設定しているはずなのですが…。もしかしたら.htaccessでの指定が悪さをしているのかもしれません。.htaccessの設定を失くして、ロリポップが推奨するエラーページの設定を使ってみようとしました。しかし、ロリポップの設定だと、他のサイトも全て同じページに設定されてしまうらしい。将来的に「kamenokoki.com」以外のサイトを増やしたいので、これは使えないことが分かりました。
kamenoko.comに接続したら、強引にindex.phpが表示されるように設定してみるかなぁ?そう思って、.htaccessにDirectoryIndexを書き込んでみましたが、ページが表示されない…。どこまでも404が出しゃばってくる。そしてとうとう、Index.phpに接続してもkamenokoki.comにリダイレクトされてしまうように…?
さらに、なぜか呼び出せない亀…。私の亀、どこ行った!
息抜きに他の設定を確認
行き詰ってきたので、他の設定を確認してみました。「http://~」で接続があった場合に「https://~」に接続する設定。これを有効にすると、Internal Errorになりました。検索して書き直し。これでうまく動くようになりました。
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule .* https://kamenokoki.com%{REQUEST_URI} [R=301,L]
次に「www.kamenokoki.com」に接続があった場合に「kamenokoki.com」に接続する設定。こちらは変更の必要もなく動きました。
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.kamenokoki\.com$
RewriteRule ^(.*)$ https://kamenokoki.com%{REQUEST_URI} [R=301,L]
あと、txtが表示できないことも確認。例えば「kamenokoki.com/blog/20200924.txt」を開こうとすると404が表示されます。これもきちんと機能しています。まぁ、どのページも全部404が表示されるんだけどね!
deny from all
</Files>
今日中に解決したかったけど…
解決できないまま、今日は時間が来てしまいました。いろいろサイト内を見て回って分かったことをメモしておきます。
- とりあえず.htaccessは機能している。思ったように動いていないだけ
- 404が表示されている、日記のリンクも作成されている、ことからファイルには問題がない
- httpsの設定をなくしてhttpに接続すると、index.phpは表示される
- httpでもブログべージは開けない
- リンクの画像(png)は表示されるのに、同じ構造で呼び出しているアイコンの亀(jpeg)は相変わらず表示されない
今日はノルマになっている日記2件分のアップデート(9月6日と7日)をして、明日また頑張ります。