wordpress の .htaccess って何者?

68
.htaccess って何者? 2013/09/29 瀬戸 貴弘

Upload: seto-takahiro

Post on 07-Jan-2017

938 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: WordPress の .htaccess って何者?

.htaccess って何者?

2013/09/29 瀬戸 貴弘

Page 2: WordPress の .htaccess って何者?

自己紹介 .htaccess

瀬戸 貴弘

Twitter

: as.chachamaru

: エンジニア

: @as_chachamaru

Facebook

職業

Web アプリ (PHP)

WordPress

その他

最近の使っている開発言語(仕事・プライベート)

Page 3: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

(1) WordPressに関わるサーバを知ろう!(1) WordPressに関わるサーバを知ろう!

(2) WordPressパーマリンクと.htaccess(2) WordPressパーマリンクと.htaccess

(3) mod_rewrite って何?(3) mod_rewrite って何?

Page 4: WordPress の .htaccess って何者?

.htaccess を説明する前にサーバのことを知るとわかりやすいよ。

.htaccessって何? .htaccess

WordPressに関わるサーバを知ろう!

Page 5: WordPress の .htaccess って何者?

Codex:サーバ要件 http://p.tl/1i9E

Codex

サーバ要件

.htaccess

WordPress の動作に確実なプラットフォームとして

は、Apache または NGINX ウェブサーバの載った Linux を

お薦めしますが、PHP と MySQL をサポートしているサーバ

であれば動きます。あなたのサーバがこのプラットフォームと

mod_rewrite をサポートしていない場合、これらを提供してい

る ホスティングサービス(レンタルサーバ) に乗り換えたほう

がいいでしょう。

Page 6: WordPress の .htaccess って何者?

Codex:サーバ要件 http://p.tl/1i9E

Codex

Apache または NGINX ウェブサーバ

PHP

MySQL

mod_rewrite 

サーバ要件 のキーワード

.htaccess

Page 7: WordPress の .htaccess って何者?

ウェブサーバの役割とは?

.htaccessって何? .htaccess

まずはWEBの仕組みから

Page 8: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

Page 9: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

Page 10: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

Page 11: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

DW や CODA2 などのアプリはクライアントパソコンで動作し、静的ページ用のファイルなどを生成する。

Page 12: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

DW や CODA2 などのアプリはクライアントパソコンで動作し、静的ページ用のファイルなどを生成する。

FTPデータ

Page 13: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

ブラウザはサーバに対してデータを要求し、受け取ったデータを解釈してサイトを表示する。

データ要求

データ提供

Page 14: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

データ要求には決められたルールがある。

データ要求

データ提供

要求方法にルール

Page 15: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

データ要求には決められたルールがある。

データ要求

データ提供

要求方法にルール

Hypertext Transfer Protocol

Page 16: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

データ要求には決められたルールがある。

データ要求

データ提供

要求方法にルール

Hypertext Transfer Protocol

Page 17: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

ブラウザはサーバに対してデータを要求し、受け取ったデータを解釈してサイトを表示する。

データ提供

http://sample.com/dir/a.html

URL

Page 18: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WEBサーバはURLを解釈し、要求に合ったHTMLファイルや画像ファイルなどをクライアントに提供するサーバ。

データ提供

URL

HOSTINGHOSTING

     URLの解釈     URLの解釈

 HTMLや画像ファイルを返す HTMLや画像ファイルを返す

WEBサーバ

Page 19: WordPress の .htaccess って何者?

Codex

Apache または NGINX ウェブサーバ PHP

MySQL

mod_rewrite 

サーバ要件 のキーワード

.htaccess

Page 20: WordPress の .htaccess って何者?

PHPはサーバ側で操作するプログラム言語

.htaccessって何? .htaccess

要求がPHPファイルだったら?

Page 21: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

まずは、PHPファイルをそのままブラウザに返してみましょう

PHPファイルだよ

URL

HOSTINGHOSTING

     URLの解釈     URLの解釈

 PHPファイルをそのまま返す PHPファイルをそのまま返す

WEBサーバ

Page 22: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

まずは、PHPファイルをそのままブラウザに返してみましょう

PHPファイルだよ

URL

HOSTINGHOSTING

     URLの解釈     URLの解釈

 PHPファイルをそのまま返す PHPファイルをそのまま返す

WEBサーバブラウザはPHPのプログラムを解釈できない

そのままコードを画面に表示する

Page 23: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

まずは、PHPファイルをそのままブラウザに返してみましょう

WEBサーバ

HOSTINGHOSTING

PHP

URL     URLの解釈     URLの解釈

  PHPファイルだね。 そのまま返せないので    誰か解釈して!

Page 24: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

PHPファイルだとわかったらPHPプログラムを解釈できるアプリケーションサーバに解釈要求をする。

URL

HOSTINGHOSTING

WEBサーバ アプリケーション  サーバ

 URLの解釈 URLの解釈

  PHPの解釈

Page 25: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

アプリケーションサーバ(PHP)がプログラム解釈した結果をWEBサーバに返す。その結果をブラウザに返す。

URL

HOSTINGHOSTING

WEBサーバ アプリケーション  サーバ

 URLの解釈 URLの解釈

  PHPの解釈

結果結果

Page 26: WordPress の .htaccess って何者?

Apache または NGINX ウェブサーバ

PHP MySQL

mod_rewrite 

サーバ要件 のキーワード

.htaccess.htaccessって何?

WordPressがPHPプログラムで書かれているので、PHPを解釈するアプリケーションサーバが必要となる

Page 27: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

MySQLは軽く説明を

Page 28: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

データベースサーバはデータ管理のスペシャリスト

HOSTINGHOSTING

WEBサーバ アプリケーション  サーバ

 データベース  サーバ

データ管理のスペシャリスト

Page 29: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

PHPプログラムなどがデータの保存や取得をデータ管理のスペシャリストのデータベースサーバに任せる。

HOSTINGHOSTING

WEBサーバ アプリケーション  サーバ

 データベース  サーバ

URL URLの解釈 URLの解釈

  PHPの解釈

結果結果

データの保存や取得

Page 30: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WEBサーバやアプリケーションサーバ、そしてデータベースサーバはただのグループ(カテゴリ名)のようなもの

WEBサーバ  アプリケーション    サーバ

  データベース  サーバ

Page 31: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

ApacheやPHP、MySQLもただのソフトの1つのようなもの。フルスクラッチなら好きな組み合わせで

WEBサーバ  アプリケーション    サーバ

  データベース  サーバ

Apache

NGNX

AN HTTPD

・・・

PHP

JAVA

Ruby

Perl

MySQL

Oracle

PostgreSQL

MariaDB

Page 32: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressはPHPプログラムで書かれているので、PHPを解釈できるPHPアプリケーションサーバが必要

WEBサーバ  アプリケーション    サーバ

  データベース  サーバ

Apache

NGNX

AN HTTPD

・・・

PHP

JAVA

Ruby

Perl

MySQL

Oracle

PostgreSQL

MariaDB  WordPressはPHPプログラムで書かれ

Page 33: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressはMySQLを使ってデータ保存、取得することを前提に作られている。

WEBサーバ  アプリケーション    サーバ

  データベース  サーバ

Apache

NGNX

AN HTTPD

・・・

JAVA

Ruby

Perl

MySQL

Oracle

PostgreSQL

MariaDB  WordPressはデータ保存にMySQLを使うことを前提

PHP

Page 34: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

多くのWEBサーバのうち動作保障しているのは一部。mod_rewrite などがないと全機能使えない。

WEBサーバ  アプリケーション    サーバ

  データベース  サーバ

Apache

NGNX

AN HTTPD

・・・

JAVA

Ruby

Perl

Oracle

PostgreSQL

MariaDB  Apache や NGNX に対して動作保障している

PHP MySQL

Page 35: WordPress の .htaccess って何者?

Apache または NGINX ウェブサーバ

PHP MySQL

mod_rewrite 

サーバ要件 のキーワード

.htaccess.htaccessって何?

Page 36: WordPress の .htaccess って何者?

サーバについてわかったかな? ここで一区切りサーバについてわかったかな? ここで一区切り

Page 37: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressパーマリンクと.htaccess

Page 38: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressパーマリンクって?

Page 39: WordPress の .htaccess って何者?

Codex:パーマリンク http://p.tl/rlAG

Codex

パーマリンク

.htaccess

パーマリンクとは、ブログの個々の投稿、カテゴリーなどの投

稿一覧ページへの恒久的(半永久的)な URL です。パーマリ

ンクは、他のブロガーがあなたの投稿やセクションにリンクを

張るときや、投稿へのリンクを Eメールで送ったりするときに

使います。個別の投稿への URL は常に存在して決して変ら

ないようにすべきです。そういう訳で、「perma」リンクといいま

す。

Page 40: WordPress の .htaccess って何者?

WordPress管理パネル>パーマリンク設定でURLのフォーマットを変更できる。

.htaccessって何? .htaccess

Page 41: WordPress の .htaccess って何者?

URLのフォーマットは異なるが、全て同じページへのアドレス。選択したフォーマットを使うことができる。

.htaccessって何? .htaccess

同じページだけどURLが異なる

Page 42: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressパーマリンク

同じページだけどURLを好きなように変更すること

簡単にいえば

Page 43: WordPress の .htaccess って何者?

PHPは

.htaccessって何? .htaccess

どのようにURLを変更してるんだろ?

Page 44: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

アプリケーションサーバ(PHP)がプログラム解釈した結果をWEBサーバに返す。その結果をブラウザに返す。

URL

HOSTINGHOSTING

WEBサーバ  アプリケーション   サーバ

 URLの解釈 URLの解釈

  PHPの解釈

結果結果

Page 45: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressはPHPで書かれているのでPHPの解釈が必要。

URL

WEBサーバ  アプリケーション   サーバ

 URLの解釈 URLの解釈

  PHPの解釈

結果結果

Page 46: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressはPHPで書かれているのでPHPの解釈が必要。

URL

WEBサーバ  アプリケーション   サーバ

 URLの解釈 URLの解釈

  PHPの解釈

結果結果

パーマリンク設定だ!URL変更するぞ!

Page 47: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressはPHPで書かれているのでPHPの解釈が必要。

URL

WEBサーバ  アプリケーション   サーバ

 URLの解釈 URLの解釈

  PHPの解釈

結果結果

パーマリンクのURLはWordPress

が勝手に決めたルールなので

WordPressしか解釈できない

Page 48: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressはPHPで書かれているのでPHPの解釈が必要。

URL

WEBサーバ  アプリケーション   サーバ

 URLの解釈 URLの解釈

  PHPの解釈

結果結果http://XXXX/?p=123 は、

http://XXXX/archives/123

のURLに変更ね?

WordPress内はこれで統一!

Page 49: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressが決めたルールに従ってブラウザからサーバにデータ要求してみる。

WEBサーバ  アプリケーション   サーバ

http://xxxx/archives/123

のデータください!

Page 50: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressが決めたルールなのでWEBサーバはURLを正しく解釈できない。本来のルールで探しにいく。

URL

WEBサーバ  アプリケーション   サーバ

 URLの解釈 URLの解釈

http://xxxx/archives/123

のデータですね。

あれ?その場所にファイルないよ!

Page 51: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

ファイルがないので404エラーで返す。パーマリンクURLを解釈できるWordPressまでたどり着けない。

WEBサーバ  アプリケーション   サーバ

ファイルありませんでしたよ。

404エラー

Page 52: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressが決めたルールなのでWEBサーバはURLを正しく解釈できない。本来のルールで探しにいく。

WEBサーバ  アプリケーション   サーバ

 

WordPressしかパーマリンク

URLを解釈できないのに

WordPressまでたどり着かない

Page 53: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressに届かないと何もできないので、URL先にファイルがない場合はWordPressの窓口にきてもらう。

※窓口: WordPress のホームディレクトリにある index.php

WEBサーバ  アプリケーション   サーバ

WEBサーバさん。

WordPress管轄内のURLで

ファイルが存在しなかったら

WordPress窓口に来て頂けま

すか?

Page 54: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

URLは、サーバ内のパスやファイル名の指定も兼ねている。パスに従ってファイルを探しにいっているので、

そのパスの途中の段階にメモを置いておかないとメモは読まれない。

WEBサーバ  アプリケーション   サーバ

WordPressさん。

URLからファイルを探す段階で

その旨がわかるように所定の

ルールに従ったメモを置いと

いてもらえますか?

Page 55: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressに届かないと何もできないので、URL先にファイルがない場合はWordPressの窓口にきてもらう。

※窓口: WordPress のホームディレクトリにある index.php

WEBサーバ  アプリケーション   サーバhttp://al5rithm.info/wbkyoto_3.5/archives/123

ここ以下の場所で、もしURLの指定したディレクトリやファイルがなかったらWordPressホームディレクトリにあるindex.php に来てください。

この場所にメモを

Page 56: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressが決めたルールに従ってブラウザからサーバにデータ要求してみる。

WEBサーバ  アプリケーション   サーバ

http://xxxx/archives/123

のデータください!

Page 57: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

本来のURLのルールに従ってファイルを探しにいく。ファイルはなかったがメモをみつけたのでメモに従う。

URL

WEBサーバ  アプリケーション   サーバ

 URLの解釈 URLの解釈

http://xxxx/archives/123

のデータですね。

その場所にファイルないけど

メモみつけたよ。

Page 58: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

メモに従ってWordPressホームディレクトリのindex.php ファイルを取りにくる。PHPなので解釈を任せる。

WEBサーバ  アプリケーション   サーバ

URLが指定したところに

ファイルがなかったですが、

メモに従って伺いました。

 メモに従う メモに従う

Page 59: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressでパーマリンク設定したのだから、当然WordPressは本来要望されているページがわかる。

WEBサーバ  アプリケーション   サーバ

そのURLですね。パーマリンク

設定情報から要望されている

ページがわかります。

Page 60: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressがURLの解釈とPHP解釈を行い結果をWEBサーバに返す。WEBサーバは結果をブラウザに返す。

WEBサーバ  アプリケーション   サーバ

結果結果

URLの解釈 URLの解釈

  PHPの解釈

Page 61: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WordPressに届かないと何もできないので、URL先にファイルがない場合はWordPressの窓口にきてもらう。

※窓口: WordPress のホームディレクトリにある index.php

WEBサーバ アプリケーション   サーバ

ここ以下の場所で、もしURLの指定したディレクトリやファイルがなかったらWordPressホームディレクトリにあるindex.php に来てください。

このメモのファイルが

.htaccess

Page 62: WordPress の .htaccess って何者?

もう少しで終わりだよもう少しで終わりだよ

Page 63: WordPress の .htaccess って何者?

mod_rewrite って何? .htaccess

mod_rewrite って何?

特に話すことはありません。すぐ終わります。しかし重要!

Page 64: WordPress の .htaccess って何者?

mod_rewrite って何? .htaccess

mod_rewrite って何?

リダイレクト処理を行うApacheの部品

  この部品があったり・なかったり

 有効だったり、無効だったりする

Page 65: WordPress の .htaccess って何者?

.htaccessって何? .htaccess

WEBサーバ

 アプリケーション   サーバここ以下の場所

で、もしURLの指定したディレクトリやファイルがなかったらWordPressホームディレクトリにあるindex.php に来てください。

mod_rewrite有効 mod_rewrite無効

  メモに従って

リダイレクトして

あげるね

mod_rewite 無効はリダイレクトできないからURLに従うしかない。URL以外の場所に行けない

  メモがあっても

  リダイレクト

できないんだ

Page 66: WordPress の .htaccess って何者?

mod_rewrite って何? .htaccess

mod_rewrite 無効に注意!

パーマリンク正常に動く保障なし!

注意してください

Page 67: WordPress の .htaccess って何者?

Apache または NGINX ウェブサーバ

PHP

MySQL

mod_rewrite 

サーバ要件 のキーワード

.htaccess.htaccessって何?

Page 68: WordPress の .htaccess って何者?

おわり

ありがとうございました。

Twitter

: as.chachamaru

: @as_chachamaru

Facebook

.htaccess