wordpress の .htaccess って何者?

Post on 07-Jan-2017

938 Views

Category:

Engineering

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

.htaccess って何者?

2013/09/29 瀬戸 貴弘

自己紹介 .htaccess

瀬戸 貴弘

Twitter

: as.chachamaru

: エンジニア

: @as_chachamaru

Facebook

職業

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って何?

おわり

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

Twitter

: as.chachamaru

: @as_chachamaru

Facebook

.htaccess

top related