こんにちは!ゴリラからの転生組、ケイジャニストやまだです!
さて今回は.htaccessということで、WordPressを普段お使いの方には馴染みの深いアイテムですよね。
この.htaccess。サーバーに設置することで様々な便利設定やいろんな調整をすることが可能で、本記事ではそんな.htaccessについて解説してみたいと思います!
『もう知ってるよー』という方は華麗に他の記事をどうぞ!
それではいってみましょう!
概要
まずは.htaccessってどんなもの?ということでまずはザックリ、.htaccessについて知っていきましょう。
順に解説していきます!
.htaccessってなに?
まずこちら、.htaccessは『ドット・エイチ・ティー・アクセス』と読みます。
この.htaccessはApache(アパッチ)が使用されているサーバー環境で使用可能なWebサーバー用の設定ファイルです。
Apacheはサーバーを動作するための専用ソフトで、多くのサーバーで利用されています。
『ディレクトリ(フォルダ)毎に設定を変えたい〜』といった時に、この.htaccessに記述することで変更を加えることが可能になるんですね。
また、.htaccessを設置したディレクトリ以下のファイルはすべてその影響を受けることになります。この辺りも抑えておきたいところです。
ApacheというWebサーバーを動かすソフトウェアが入ってないと利用できないものです。
詳しくはApacheのドキュメントを読んでみましょう。
https://httpd.apache.org/docs/2.2/ja/howto/htaccess.html
.htaccessってどんな時に使うの?
基本的にサーバーの主となる設定ファイルをさわれないような時にでも『サーバーの設定を変更したい』というような場合に利用します。
逆を言うと、サーバーの主となる設定ファイルhttpd.confとかが触れるのであれば不要ということになります。
WordPressは?
WordPressはCMSの仕様として.htaccessの利用がマストで作られていますので、たとえ主設定ファイルが触れたとしても.htaccessが利用できるよう環境が必須なことは覚えておきましょう!
.htaccessってどんなことができるの?
上記の特徴から、.htaccessではサーバーの設定を変更することが可能です。
設定の変更範囲ですが、なんでもかんでも設定が変更できるというわけではなく、.htaccessによる変更が許可されているものみ変更が可能となっています。
レンタルサーバーなどの場合は、設定範囲が決まっていて、その範囲のみ.htaccessで変更可能といった設定が多くみられますので、
レンタルサーバーをお使いでそちらで.htaccessを利用する場合はどこまで変更可能かを調べておくといいでしょう。
※人気のサーバーで有名なエックスサーバー やさくらなどはサンプルでの記述が用意されていたりもします。
後述のTipsでもご紹介している内容は多くのサーバーで利用できますので是非参考にしてみてくださいね!
.htaccessを利用するときの注意点
記述をミスると画面が真っ白になる
『サーバーの設定を変更する』という特性もあって、間違った記述をした.htaccessをアップロードしてしまうと、画面が真っ白になったりといった現象が発生し、表示がまったくされなくなったりします。.htaccessを編集するときは注意して作業するようにしましょう。
Apache上でないと動作しない
この.htaccessですが、Apacheに付随する設定ファイルですので、Apache上でないと動作しません。この点も注意しましょう。
バックアップでダウンロードしたけど、ファイルが見当たらない
.htaccessはファイル名もズバリ『.htaccess』です。PCで触るファイル全般にいえますが、ファイル名の先頭に「.(ドット)」がついている場合、パソコン自体が普段使わない設定ファイルという認識をしますので、不可視ファイルの表示など、パソコンのフォルダの表示設定を行なっていないと、表示されなかったりします。
『FTPソフト上では表示されてるけど、普通のフォルダには表示されないよー』といったことで困る場合はご自身のパソコンのフォルダ設定を見直してみるといいかもしれません。
※大体のFTPソフトでは表示されます。
.htaccessを使ったTipsをご紹介
さて、ここまで.htaccessについて簡単にご紹介してきました。
平たく言うと『Apacheというwebサーバー用のソフトウェア上で動く設定ファイル。サーバー設定を変更する時に使うもので、色々できる』ということですね(雑)。
さてここからは実際に.htaccessを使ったTipsを簡単にご紹介いたします。
URLのリダイレクト(転送処理)
.htaccessを使った設定といえば、最初に思いつくのはこのURLのリダイレクトではないでしょうか?
『いままで表示していたページを削除した』『サイトごと別のドメインへ引っ越した』など、様々な都合でURLの変更やいままであったはずのURLが使わなくなったなど、なんらかの変更を余儀なくされるシチュエーションというのは、webサイトを運営していると往々にしてありますね。
そんな時にこのURLのリダイレクト処理を行ったりすると思います。ここではそんなリダイレクトに関してのTipsをご紹介したいと思います。
書き方がいくつかありますので一番シンプルなものから紹介していきます。
基本の書き方
1ページのみのリダイレクト(ファイル名あり)
まずはシンプルなものから以下を記述することでリダイレクトされます。
これはページ単位でのリダイレクトです。
http://test.jpというサイトのサーバーに上記を記述した.htaccessを設置した場合、『http://test.jp/test/index.html』というところへアクセスがあると『http://redirect.jp/test/index.html』へリダイレクトされます。一番シンプルな記述ですね。もちろんファイル名付きのURLからディレクトリ単位のURLへの転送も可能です。以下はファイル名付きのURLからディレクトリ単位へのURLへの転送となります。
1ページのみのリダイレクト(ファイル名なし)
先ほどの記述はファイル名が末尾についていました。
ディレクトリ単位でのリダイレクトをするときは以下のように記述します。
こちらも動作が確認できると思います。
正規表現
上記の記述に加えて正規表現を使うことも可能です。
上記に則った書き方なら、RedirectMatchをわかりやすいと思います。
これでもファイル名なしの時と同じ結果が得られます。
mod_rewriteを使う
サーバーでmod_rewriteが利用できる場合は違う書き方で表現することが可能です。
mod_rewriteを使う場合、さらに複雑な表現をすることが可能になりますのでここも抑えておきたいところですね!
mod_rewriteを使う場合は記述の前後に「<IfModule mod_rewrite.c> RewriteEngine On」「</IfModule>」と書いて、囲った中に記述する必要があります。
※ifModuleで囲うことで、『mod_rewriteというモジュールがインストールされていたら〜』といった条件分岐構文となります。
※「RewriteEngine On」と書くことで、このrewrite機能自体のオンオフを制御しています。オンで利用するのでセットで利用するようにしましょう。
ここではmod_rewriteを使ったURLの正規化のパターンについてご紹介いたします。
是非一度試してみてくださいね!
※『URLの正規化』とは「http://test.jp/」というURLでも実は「http://test.jp/index.html」「http://www.test.jp/」でも同じページが表示されてしまう時に、それを一本化するようなことをURLの正規化と表現したりします。
URLの正規化(wwwの有無統一)
以下は「wwwをつけたURL」に一本化しています。
『RewriteCond』は『もし〜だったら』という条件を定義するためのものです。
ここで条件を定義して、続く『RewriteRule』で条件を満たした場合のrewrite処理を書いています。
この場合「httpプロトコルでtest.jpというドメインにアクセスされたら」という意味になり、
続くRewriteRuleで「http://www.test.jp」へ転送しています。
RewriteRuleでの301の箇所ですが、転送時のステータスを表現していて『301ステータスで転送』という記述になります。
この記述でhttp://test.jpにアクセスされたものはすべて「http://www.test.jp」へ転送され、結果一本化されるということになるわkです。
URLの正規化(httpとhttps)
先ほどのサンプルはhttpプロトコルを通じたものでした。
最近はセキュリティ観念から「SSL通信」が推奨されており、その場合「httpsプロトコル」になります。
これもURLがユラユラしているということで、URLの正規化対象となります。
記述は以下です。
上記の場合、RewriteRuleでhttpsのついたURLへ転送しています。
URLの正規化(wwwの有無、httpの統一)
上記を二つ書くと転送処理が走った後に再度走ってしまうので、うまく動作しません。
以下はwwwの有無とhttpの統一を同時に行う表現のサンプルです。
いかがでしたか?
他にもリダイレクトというとindex.htmlの有無などもありますが、長くなりますので一旦ここでは割愛。
他の設定のご紹介へ移りたいと思います。
文字コードの変更
サーバーであらかじめ設定されている文字コードを変更することも、.htaccessでの変更が許可されていれば可能になります。
UTF-8が主流で、変更するシチュエーションはまれですが、覚えておいてもいいかもしれません。
記述は以下の通りです。
上記は根幹的な設定なので、これを設定する場合はファイル最上部付近に記述するようにしましょう。
設定の優先順位もありますので必ず最上部というわけではありません。よしなに調整してください!
WordPressのアップロード容量をアップする
WordPressを使っていてよくあるのがこのアップロード容量のリミットです。
デフォルトだと2MBとかですが、以下を記述することで解放できます。
※以下記述ですと10MBに上がります。
上記ですが、memory使用量のリミットも記載があるので必ず上から数字を落とすように書きます。
是非お試しください。
キャッシュの設定
mod_rewirteの他にmod_expiresというモジュールがあります。
これを使うことで、ファイルのキャッシュ設定を行うことができます。
この設定を行うと表示するときのファイルの解析が、キャッシュから行われるので表示速度改善が見込まれます。
表示速度が気になる場合は設定してみてもいいかもしれません。
ただ、上記を行うと今度は変更をかけた時にキャッシュクリアしないと変更が確認できないケースもありますので、この点はご留意ください。
Basic認証をかける
これもまた代表的な設定ですね。
以下の記述することで、簡易的な認証設定をかけることができます。
また、認証設定時は「.htpasswd」という別途ユーザー名とパスワードを記述したファイルとセットで設置します。
.htaccess、.htpasswdの記述例は以下の通りです。
.htaccess
.htpasswd
まとめ
さて、ここまで.htaccessについて解説してきました。
WordPressを利用していたりすると、普段使いでもよく見る記述かなとも思うので、『こんなのできるんだ』と是非覚えてもらえると嬉しいです!
以上、ケイジャニストでした〜