wordpress の .htaccess って何者?
TRANSCRIPT
.htaccess って何者?
2013/09/29 瀬戸 貴弘
自己紹介 .htaccess
瀬戸 貴弘
: as.chachamaru
: エンジニア
: @as_chachamaru
職業
Web アプリ (PHP)
WordPress
その他
最近の使っている開発言語(仕事・プライベート)
.htaccessって何? .htaccess
(1) WordPressに関わるサーバを知ろう!(1) WordPressに関わるサーバを知ろう!
(2) WordPressパーマリンクと.htaccess(2) WordPressパーマリンクと.htaccess
(3) mod_rewrite って何?(3) mod_rewrite って何?
.htaccess を説明する前にサーバのことを知るとわかりやすいよ。
.htaccessって何? .htaccess
WordPressに関わるサーバを知ろう!
Codex:サーバ要件 http://p.tl/1i9E
Codex
サーバ要件
.htaccess
WordPress の動作に確実なプラットフォームとして
は、Apache または NGINX ウェブサーバの載った Linux を
お薦めしますが、PHP と MySQL をサポートしているサーバ
であれば動きます。あなたのサーバがこのプラットフォームと
mod_rewrite をサポートしていない場合、これらを提供してい
る ホスティングサービス(レンタルサーバ) に乗り換えたほう
がいいでしょう。
Codex:サーバ要件 http://p.tl/1i9E
Codex
Apache または NGINX ウェブサーバ
PHP
MySQL
mod_rewrite
サーバ要件 のキーワード
.htaccess
ウェブサーバの役割とは?
.htaccessって何? .htaccess
まずはWEBの仕組みから
.htaccessって何? .htaccess
.htaccessって何? .htaccess
.htaccessって何? .htaccess
.htaccessって何? .htaccess
DW や CODA2 などのアプリはクライアントパソコンで動作し、静的ページ用のファイルなどを生成する。
.htaccessって何? .htaccess
DW や CODA2 などのアプリはクライアントパソコンで動作し、静的ページ用のファイルなどを生成する。
FTPデータ
.htaccessって何? .htaccess
ブラウザはサーバに対してデータを要求し、受け取ったデータを解釈してサイトを表示する。
データ要求
データ提供
.htaccessって何? .htaccess
データ要求には決められたルールがある。
データ要求
データ提供
要求方法にルール
.htaccessって何? .htaccess
データ要求には決められたルールがある。
データ要求
データ提供
要求方法にルール
Hypertext Transfer Protocol
.htaccessって何? .htaccess
データ要求には決められたルールがある。
データ要求
データ提供
要求方法にルール
Hypertext Transfer Protocol
.htaccessって何? .htaccess
ブラウザはサーバに対してデータを要求し、受け取ったデータを解釈してサイトを表示する。
データ提供
http://sample.com/dir/a.html
URL
.htaccessって何? .htaccess
WEBサーバはURLを解釈し、要求に合ったHTMLファイルや画像ファイルなどをクライアントに提供するサーバ。
データ提供
URL
HOSTINGHOSTING
URLの解釈 URLの解釈
HTMLや画像ファイルを返す HTMLや画像ファイルを返す
WEBサーバ
Codex
Apache または NGINX ウェブサーバ PHP
MySQL
mod_rewrite
サーバ要件 のキーワード
.htaccess
PHPはサーバ側で操作するプログラム言語
.htaccessって何? .htaccess
要求がPHPファイルだったら?
.htaccessって何? .htaccess
まずは、PHPファイルをそのままブラウザに返してみましょう
PHPファイルだよ
URL
HOSTINGHOSTING
URLの解釈 URLの解釈
PHPファイルをそのまま返す PHPファイルをそのまま返す
WEBサーバ
.htaccessって何? .htaccess
まずは、PHPファイルをそのままブラウザに返してみましょう
PHPファイルだよ
URL
HOSTINGHOSTING
URLの解釈 URLの解釈
PHPファイルをそのまま返す PHPファイルをそのまま返す
WEBサーバブラウザはPHPのプログラムを解釈できない
そのままコードを画面に表示する
.htaccessって何? .htaccess
まずは、PHPファイルをそのままブラウザに返してみましょう
WEBサーバ
HOSTINGHOSTING
PHP
URL URLの解釈 URLの解釈
PHPファイルだね。 そのまま返せないので 誰か解釈して!
.htaccessって何? .htaccess
PHPファイルだとわかったらPHPプログラムを解釈できるアプリケーションサーバに解釈要求をする。
URL
HOSTINGHOSTING
WEBサーバ アプリケーション サーバ
URLの解釈 URLの解釈
PHPの解釈
.htaccessって何? .htaccess
アプリケーションサーバ(PHP)がプログラム解釈した結果をWEBサーバに返す。その結果をブラウザに返す。
URL
HOSTINGHOSTING
WEBサーバ アプリケーション サーバ
URLの解釈 URLの解釈
PHPの解釈
結果結果
Apache または NGINX ウェブサーバ
PHP MySQL
mod_rewrite
サーバ要件 のキーワード
.htaccess.htaccessって何?
WordPressがPHPプログラムで書かれているので、PHPを解釈するアプリケーションサーバが必要となる
.htaccessって何? .htaccess
MySQLは軽く説明を
.htaccessって何? .htaccess
データベースサーバはデータ管理のスペシャリスト
HOSTINGHOSTING
WEBサーバ アプリケーション サーバ
データベース サーバ
データ管理のスペシャリスト
.htaccessって何? .htaccess
PHPプログラムなどがデータの保存や取得をデータ管理のスペシャリストのデータベースサーバに任せる。
HOSTINGHOSTING
WEBサーバ アプリケーション サーバ
データベース サーバ
URL URLの解釈 URLの解釈
PHPの解釈
結果結果
データの保存や取得
.htaccessって何? .htaccess
WEBサーバやアプリケーションサーバ、そしてデータベースサーバはただのグループ(カテゴリ名)のようなもの
WEBサーバ アプリケーション サーバ
データベース サーバ
.htaccessって何? .htaccess
ApacheやPHP、MySQLもただのソフトの1つのようなもの。フルスクラッチなら好きな組み合わせで
WEBサーバ アプリケーション サーバ
データベース サーバ
Apache
NGNX
AN HTTPD
・・・
PHP
JAVA
Ruby
Perl
MySQL
Oracle
PostgreSQL
MariaDB
.htaccessって何? .htaccess
WordPressはPHPプログラムで書かれているので、PHPを解釈できるPHPアプリケーションサーバが必要
WEBサーバ アプリケーション サーバ
データベース サーバ
Apache
NGNX
AN HTTPD
・・・
PHP
JAVA
Ruby
Perl
MySQL
Oracle
PostgreSQL
MariaDB WordPressはPHPプログラムで書かれ
.htaccessって何? .htaccess
WordPressはMySQLを使ってデータ保存、取得することを前提に作られている。
WEBサーバ アプリケーション サーバ
データベース サーバ
Apache
NGNX
AN HTTPD
・・・
JAVA
Ruby
Perl
MySQL
Oracle
PostgreSQL
MariaDB WordPressはデータ保存にMySQLを使うことを前提
PHP
.htaccessって何? .htaccess
多くのWEBサーバのうち動作保障しているのは一部。mod_rewrite などがないと全機能使えない。
WEBサーバ アプリケーション サーバ
データベース サーバ
Apache
NGNX
AN HTTPD
・・・
JAVA
Ruby
Perl
Oracle
PostgreSQL
MariaDB Apache や NGNX に対して動作保障している
PHP MySQL
Apache または NGINX ウェブサーバ
PHP MySQL
mod_rewrite
サーバ要件 のキーワード
.htaccess.htaccessって何?
サーバについてわかったかな? ここで一区切りサーバについてわかったかな? ここで一区切り
.htaccessって何? .htaccess
WordPressパーマリンクと.htaccess
.htaccessって何? .htaccess
WordPressパーマリンクって?
Codex:パーマリンク http://p.tl/rlAG
Codex
パーマリンク
.htaccess
パーマリンクとは、ブログの個々の投稿、カテゴリーなどの投
稿一覧ページへの恒久的(半永久的)な URL です。パーマリ
ンクは、他のブロガーがあなたの投稿やセクションにリンクを
張るときや、投稿へのリンクを Eメールで送ったりするときに
使います。個別の投稿への URL は常に存在して決して変ら
ないようにすべきです。そういう訳で、「perma」リンクといいま
す。
WordPress管理パネル>パーマリンク設定でURLのフォーマットを変更できる。
.htaccessって何? .htaccess
URLのフォーマットは異なるが、全て同じページへのアドレス。選択したフォーマットを使うことができる。
.htaccessって何? .htaccess
同じページだけどURLが異なる
.htaccessって何? .htaccess
WordPressパーマリンク
同じページだけどURLを好きなように変更すること
簡単にいえば
PHPは
.htaccessって何? .htaccess
どのようにURLを変更してるんだろ?
.htaccessって何? .htaccess
アプリケーションサーバ(PHP)がプログラム解釈した結果をWEBサーバに返す。その結果をブラウザに返す。
URL
HOSTINGHOSTING
WEBサーバ アプリケーション サーバ
URLの解釈 URLの解釈
PHPの解釈
結果結果
.htaccessって何? .htaccess
WordPressはPHPで書かれているのでPHPの解釈が必要。
URL
WEBサーバ アプリケーション サーバ
URLの解釈 URLの解釈
PHPの解釈
結果結果
.htaccessって何? .htaccess
WordPressはPHPで書かれているのでPHPの解釈が必要。
URL
WEBサーバ アプリケーション サーバ
URLの解釈 URLの解釈
PHPの解釈
結果結果
パーマリンク設定だ!URL変更するぞ!
.htaccessって何? .htaccess
WordPressはPHPで書かれているのでPHPの解釈が必要。
URL
WEBサーバ アプリケーション サーバ
URLの解釈 URLの解釈
PHPの解釈
結果結果
パーマリンクのURLはWordPress
が勝手に決めたルールなので
WordPressしか解釈できない
.htaccessって何? .htaccess
WordPressはPHPで書かれているのでPHPの解釈が必要。
URL
WEBサーバ アプリケーション サーバ
URLの解釈 URLの解釈
PHPの解釈
結果結果http://XXXX/?p=123 は、
http://XXXX/archives/123
のURLに変更ね?
WordPress内はこれで統一!
.htaccessって何? .htaccess
WordPressが決めたルールに従ってブラウザからサーバにデータ要求してみる。
WEBサーバ アプリケーション サーバ
http://xxxx/archives/123
のデータください!
.htaccessって何? .htaccess
WordPressが決めたルールなのでWEBサーバはURLを正しく解釈できない。本来のルールで探しにいく。
URL
WEBサーバ アプリケーション サーバ
URLの解釈 URLの解釈
http://xxxx/archives/123
のデータですね。
あれ?その場所にファイルないよ!
.htaccessって何? .htaccess
ファイルがないので404エラーで返す。パーマリンクURLを解釈できるWordPressまでたどり着けない。
WEBサーバ アプリケーション サーバ
ファイルありませんでしたよ。
404エラー
.htaccessって何? .htaccess
WordPressが決めたルールなのでWEBサーバはURLを正しく解釈できない。本来のルールで探しにいく。
WEBサーバ アプリケーション サーバ
WordPressしかパーマリンク
URLを解釈できないのに
WordPressまでたどり着かない
.htaccessって何? .htaccess
WordPressに届かないと何もできないので、URL先にファイルがない場合はWordPressの窓口にきてもらう。
※窓口: WordPress のホームディレクトリにある index.php
WEBサーバ アプリケーション サーバ
WEBサーバさん。
WordPress管轄内のURLで
ファイルが存在しなかったら
WordPress窓口に来て頂けま
すか?
.htaccessって何? .htaccess
URLは、サーバ内のパスやファイル名の指定も兼ねている。パスに従ってファイルを探しにいっているので、
そのパスの途中の段階にメモを置いておかないとメモは読まれない。
WEBサーバ アプリケーション サーバ
WordPressさん。
URLからファイルを探す段階で
その旨がわかるように所定の
ルールに従ったメモを置いと
いてもらえますか?
.htaccessって何? .htaccess
WordPressに届かないと何もできないので、URL先にファイルがない場合はWordPressの窓口にきてもらう。
※窓口: WordPress のホームディレクトリにある index.php
WEBサーバ アプリケーション サーバhttp://al5rithm.info/wbkyoto_3.5/archives/123
ここ以下の場所で、もしURLの指定したディレクトリやファイルがなかったらWordPressホームディレクトリにあるindex.php に来てください。
この場所にメモを
.htaccessって何? .htaccess
WordPressが決めたルールに従ってブラウザからサーバにデータ要求してみる。
WEBサーバ アプリケーション サーバ
http://xxxx/archives/123
のデータください!
.htaccessって何? .htaccess
本来のURLのルールに従ってファイルを探しにいく。ファイルはなかったがメモをみつけたのでメモに従う。
URL
WEBサーバ アプリケーション サーバ
URLの解釈 URLの解釈
http://xxxx/archives/123
のデータですね。
その場所にファイルないけど
メモみつけたよ。
.htaccessって何? .htaccess
メモに従ってWordPressホームディレクトリのindex.php ファイルを取りにくる。PHPなので解釈を任せる。
WEBサーバ アプリケーション サーバ
URLが指定したところに
ファイルがなかったですが、
メモに従って伺いました。
メモに従う メモに従う
.htaccessって何? .htaccess
WordPressでパーマリンク設定したのだから、当然WordPressは本来要望されているページがわかる。
WEBサーバ アプリケーション サーバ
そのURLですね。パーマリンク
設定情報から要望されている
ページがわかります。
.htaccessって何? .htaccess
WordPressがURLの解釈とPHP解釈を行い結果をWEBサーバに返す。WEBサーバは結果をブラウザに返す。
WEBサーバ アプリケーション サーバ
結果結果
URLの解釈 URLの解釈
PHPの解釈
.htaccessって何? .htaccess
WordPressに届かないと何もできないので、URL先にファイルがない場合はWordPressの窓口にきてもらう。
※窓口: WordPress のホームディレクトリにある index.php
WEBサーバ アプリケーション サーバ
ここ以下の場所で、もしURLの指定したディレクトリやファイルがなかったらWordPressホームディレクトリにあるindex.php に来てください。
このメモのファイルが
.htaccess
もう少しで終わりだよもう少しで終わりだよ
mod_rewrite って何? .htaccess
mod_rewrite って何?
特に話すことはありません。すぐ終わります。しかし重要!
mod_rewrite って何? .htaccess
mod_rewrite って何?
リダイレクト処理を行うApacheの部品
この部品があったり・なかったり
有効だったり、無効だったりする
.htaccessって何? .htaccess
WEBサーバ
アプリケーション サーバここ以下の場所
で、もしURLの指定したディレクトリやファイルがなかったらWordPressホームディレクトリにあるindex.php に来てください。
mod_rewrite有効 mod_rewrite無効
メモに従って
リダイレクトして
あげるね
mod_rewite 無効はリダイレクトできないからURLに従うしかない。URL以外の場所に行けない
メモがあっても
リダイレクト
できないんだ
mod_rewrite って何? .htaccess
mod_rewrite 無効に注意!
パーマリンク正常に動く保障なし!
注意してください
Apache または NGINX ウェブサーバ
PHP
MySQL
mod_rewrite
サーバ要件 のキーワード
.htaccess.htaccessって何?
おわり
ありがとうございました。
: as.chachamaru
: @as_chachamaru
.htaccess