WordPressの .htaccess について
WordPressでは「URLのリライト」という機能が使われています。この機能について簡単に解説します。
概要
WordPressの仕組みを知ることで、より自由に使えるようになります。ここでは、「URLのリライト」について解説します。ここでの解説を元に、発展的に学んでください。
公開フォルダとは?
Webサイトは、Webサーバーというプログラムが常時動いています。このプログラムが、ブラウザ(閲覧者)からのリクエストに答えて、HTML通信を行っています。
Webサーバーは、リクエストされたURLを解析します。この時「公開フォルダ」として指定されたフォルダの中のファイルを探し、ブラウザに返答します。
自分でサーバーを構築しているなら、公開フォルダの位置は自由に決められます。人によって好みは様々です。例えば、 /var/www/toiee.jp
とする場合や、/home/toiee/public_html
や/home/toiee/www
だったり、/home/toiee/htdocs_toiee.jp
など様々です。
レンタルサーバーの場合、この設置場所が「レンタルサーバー業者によってルールが作られ決まっています」。
XServerの場合、 /home/契約ID名/ドメイン名/public_html
となっています。さくらの場合は、wwwフォルダ
、ロリポップの場合は、自分で好きなように設定
となっています。
ここで重要なことは、公開フォルダと指定された場所が、Webサーバーによって公開されるということです。この公開フォルダに、HTML、画像、PHPプログラムなどを置かないと、インターネット上に公開するとができません(例外はもちろんあります)。
公開フォルダとURL
公開フォルダとURLは対応します。
例えば、URL(ホームページアドレス)が、 http://toiee.jp/member/contact.html となっている場合、公開フォルダ内の memberフォルダの中にある、 contact.html ファイルのことを指します。
WordPress と 公開フォルダ
上記のようなフォルダ、ファイルとURLが対応した関係のままだと、新しくページを作成する度に、フォルダを作成し、ファイルを作成しなくてはいけません。
そこで、WordPress の場合、「フォルダやファイルは作成しないけど」URLを解析して、必要なデータを返答するように設計されています。
通常、WebサイトのURLと、サーバーのファイル構造は対応しています。例えば、 https://legacy.toiee.jp/sub/contact.html というURLでアクセスしても、そのようなファイルやフォルダはありません。WordPressがそのようなURLに対応するデータを生成して、返答をしています。
URLリライト
上記のような特殊な動きを実現する方法が「URLのリライト(書き換え)」です。
WordPressでは(Apacheの場合)、以下のような内容を .htaccess に書き込みます。この意味は、以下の通りです。
上記のような記述をすると、
- URLに対応するファイルが存在しないかつ、URLに対応するフォルダが存在しない場合
には、 index.php にアクセスしていることとするを意味します。
つまり、ファイルやフォルダが存在しないURLを指定されたら、 index.php (WordPressを呼び出す) を呼び出すことになります。
そして、呼び出されたWordPressのシステムが「リクエストされたURL」を解析し、データベースを検索して、そのURLとして作られたWebページのデータを読み出し、返答します。
このような仕組みのおかげで、
- ブログ投稿に対して、自由にURLがつけられる
- 存在しないファイルにアクセスがあると、独自のNot Foundのページを表示する
という動作をさせることができます。
補足 : QHM の .htaccess ファイルについて
QHMユーザーから、WordPressへ移行したした場合、QHMの .htaccess ファイルにWordPressの設定が追記されます。
QHMの内容は以下のようになります。
意味は、〇〇.ini.php、 〇〇lng.php、〇〇.txt、〇〇.gz、〇〇.tgz ファイルに対するアクセスは「許可しない」という意味です。
QHMでは、設定やWebページのデータを .txt ファイルに保存しています。このファイルを直接ブラウザから見られないようにするための設定です。
なお、 robots.txt だけは、Googleの検索エンジンが利用するので特別に許可するようにしています。
それが上記の設定です。
学び方
URLのリライトについて学ぶには、上記の設定ファイルの用語を使って検索すると良いでしょう。例えば、
URL リライト FilesMatch
URL リライト RewriteBase
などです。
お試しください。