十字架ラビアンローズ

Movable Typeの再構築の負担を軽減する為の下準備として、それまでHTMLファイルを書き出す設定にしていたのをPHPファイルを書き出すよう変更し、かつリンクは拡張子htmlのままで繋がるようにしました。

  1. トップページ
  2. Webサイト構築
  3. 当サイト制作日記
  4. MTで出力するファイルをPHPに変更し、かつ拡張子htmlのままでアクセス出来るようにした

MTで出力するファイルをPHPに変更し、かつ拡張子htmlのままでアクセス出来るようにした

2013.8.3.Sat. 07:56

※本記事投稿後、当サイトでは本記事に掲載している改変内容を取りやめてしまいました。
しかし本記事の内容が参考になるというパターンの方もいらっしゃるかもしれませんので、本記事は投稿当時の内容をそのまま残しておく事とします。


7/30〜8/1のあたりで、当サイトにアクセスしづらい状態になってしもうていて大変すまんでした(´・ω・`)
以前にMT再構築で500エラーが出る現象の解決策を施してみたものの、最近それでもあかんくなってきた為にダイナミックパブリッシングを試してみようかとあれこれやっていったら、それを実行する為の準備だけで記事1件書けるほどの膨大な作業になったので、これからダイナミックパブリッシングをやるにあたっての準備編として本記事をお送りします。

それまでHTMLで書き出していた各ファイルを、PHPで書き出す事になった

色々作業しすぎて、何でPHPに変更する事になったのかが思い出せなくなってしまったんですが(……)。
PHPはたいして詳しくないけど(ソースを見慣れているという程度)、これといって嫌がる理由も特になかったので。
HTMLにしておけばSEO上有効だよ!と聞いていたからHTMLにしておいていた、という感じだったし。

書き出すファイルをHTMLからPHPに変更するだけなら30秒で出来ます。
MT管理画面サイドメニューの「設定>全般」で、「アーカイブ設定」の「ファイルの拡張子」を「php」に書き換えるだけ。
だけど、俺達の冒険はまだまだ終わらない!(WJ風に)

○○.html」にアクセスして「○○.php」の内容が表示されるようにする

WebページのURLが変更になってしまうのは、SEO上あまり宜しくありません。
本当にサイトをお引越ししたとかなら転送設定をかける等の手段をとるのも良いでしょうが、拡張子が変更になったというだけなら、mod_rewriteで解決してしまいましょう。
僕はmod_rewriteについては最近触り始めたという初心者なんで、詳細は僕も参考にさせて頂いたサイト様にお任せしてしまいますね(*・ω・)つhttp://tech.bayashi.net/svr/doc/apache/mod_rewrite.html
ロリポップで出来たんで他の有料サーバーでも多分出来るでしょう、責任は取れないけど。

かくして、「○○.html」でアクセスしても「○○.php」でアクセスしても、どちらでも「○○.php」の内容が表示されるようになりました。
個別記事から手動でリンク張っていた箇所も、拡張子htmlのままで従来どおりにリンクが繋がる為、修正する必要がなくなりました。

ただしルート直下のHTMLファイルはHTMLのままとする

mod_rewriteの記述を含む.htaccessは、ルート直下に置いておけば楽でしょう。
ただしそれだと、サイト内のありとあらゆるHTMLファイルが同名のPHPファイルを参照するようになってしまう為、MTと関係しないコンテンツに余計な影響が及ぶ危険性があります。
僕はPatiPatiでそうなりました。
その為、ルート直下に.htaccessを置いてまとめて適用されるようにするのではなく、MTで書き出されるファイルが格納される各ディレクトリに一つずつ地道に.htaccessをアップし、それぞれのディレクトリの中でだけ適用されるようにするのです。
そうすれば、MTと関係しないコンテンツに変な副作用が及ぶ心配もありません。

しかしこうすると今度は、当たり前ですが、ルート直下のHTMLファイルはPHPファイルを参照しなくなります。
その為ルート直下のHTMLファイルだけは、PHPでなく、従来どおりHTMLとして出力されるようにしておきます。
当サイトではインデックステンプレートのみルート直下に配置され、ウェブページ・ブログ記事は1階層以上掘り下げて配置されるというルールになっている為、この場合はインデックステンプレートのみHTMLで書き出されるようにしておきます。

SSIをPHPに書き換えなければならない

各種テンプレート、あるいはウェブページやブログ記事の本文中にSSIを含めていたならば、それらはPHPに書き直さなければなりません。
当サイトは広告の箇所をSSIでインクルードしていた為、それをPHPの文法でインクルードするように変更しました。
ただし先述のとおり、ルート直下に配置されるファイルはHTMLのままなので、これらに適用される内容についてはSSIの文法のままで。
(当サイトは.htaccessにて、拡張子htmlでもshtmlのようにSSIが適用されるように設定している)

因みにこのタイミングで、インクルードファイルの拡張子をhtmlからphpに変更しようかと考えていたんですが(理由は特にない)、同一のファイルをSSIでもPHPでもインクルードする事になった為、結局htmlのままでいく事になりまんた。
PHPでもHTMLファイルをインクルード出来ますんでね。

不要になったHTMLファイルは削除しておく

再構築してPHPファイルが書き出されたら、同名のHTMLファイルはFTPクライアントで削除します。
(その後拡張子htmlでアクセスし、リンク切れにならずにPHPファイルにアクセス出来るようになっている事を確認するように)
HTMLとPHPとで同じ内容になっている筈なんで、サーバー上に同一内容が重複してアップされていると、各種検索エンジンからペナルティを受ける危険性があります。
どのみち、PHPファイルが参照されるようになると、今後HTMLファイルの内容にはもうアクセスされなくなるし。


…という膨大な作業を経て、何とか無事に表題の件が完了しました。
これから新規でMTを設置しようかという人は、最初からPHPで書き出されるように設定しておいた方が良いでしょう…(;・ω・)
そしてこれだけ大変な思いをしたのに、肝心のダイナミックパブリッシングの実行には未だ入れていないというね!((((;`・ω・))))
無事ダイナミックパブリッシングに成功したらまた記事を立てましょう、そしてそれに至るまでの間にまたちょっとサイトに繋がりにくくなってしまう可能性がね_| ̄|○
引き続きご迷惑をおかけします(´・ω・`)

Twitter

アーカイブ

全記事アーカイブ

ブログパーツ

  • アイラブ地元ブログパーツ