13,009
回編集
124行目: | 124行目: | ||
# これは、ステータスparmanent (ステータスコード 301 : Moved Parmanetly) を返す | # これは、ステータスparmanent (ステータスコード 301 : Moved Parmanetly) を返す | ||
Redirect parmanent /redirect_sample/ http://example.com/redirect/ | Redirect parmanent /redirect_sample/ http://example.com/redirect/ | ||
</syntaxhighlight> | |||
<br><br> | |||
== コンテントネゴシエーション == | |||
HTTPリクエストヘッダは、言語、文字タイプ、データタイプ等の環境情報について通知している。<br> | |||
複数の形式で優先度が付いており、サーバ側は最適なものを選択することができる。<br> | |||
<br> | |||
このように、処理できるデータ形式をクライアントとサーバ間で自動的に問い合わせることを、<u>コンテントネゴシエーション</u>と呼ぶ。<br> | |||
<br> | |||
# Accept : クライアントが処理できるデータタイプと優先度 | |||
# Accept-Language : クライアントが処理できる言語と優先度 | |||
# Accept-Charset : クライアントが処理できる文字コードと優先度 | |||
# Accept-Encoding : クライアントが処理できるデータ転送方式と優先度 | |||
# q : 品質値 | |||
GET / HTTP / 1.1 | |||
Accept-Language : ja, en-us; q=0.7, en:q=0.3 | |||
Accept-Charset : Shift_JIS,utf-8; q=0.7,*;q=0.7 | |||
<br> | |||
<syntaxhighlight lang="apache"> | |||
# httpd.confファイル | |||
<Directory "/srv/www/htdocs"> | |||
# MultiViews : コンテントネゴシエーションを有効にする | |||
Options FollowSymLinks MultiViews | |||
# AddLanguage : 拡張子を言語指定に関連付ける | |||
AddLanguage en .en | |||
AddLanguage ja .ja | |||
# AddCharset : 拡張子を文字コード指定に関連付ける | |||
AddCharset shift_jis .sjis | |||
</Directory> | |||
</syntaxhighlight> | |||
<br> | |||
ドキュメントルートに日本語のページ(lang.html.ja)と英語のページ(lang.html.en)を配置してアクセスする。<br> | |||
* http://example.com/lang.html | |||
* http://example.com/lang.html.ja | |||
* http://example.com/lang.html.en | |||
<br> | |||
<syntaxhighlight lang="html"> | |||
<!-- lang.html.ja --> | |||
<html> | |||
<head> | |||
<META http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<title>日本語のページ</title> | |||
</head> | |||
<body> | |||
<p>日本語のコンテンツ</p> | |||
<p>English Content</p> | |||
</body> | |||
</html> | |||
</syntaxhighlight> | |||
<br> | |||
<syntaxhighlight lang="html"> | |||
<!-- lang.html.en --> | |||
<html> | |||
<head> | |||
<META http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<title>English Page</title> | |||
</head> | |||
<body> | |||
<p>日本語のコンテンツ</p> | |||
<p>English Content</p> | |||
</body> | |||
</html> | |||
</syntaxhighlight> | |||
<br> | |||
HTTPリクエストヘッダで優先順位が決まらない、または、指定が無い場合は、<code>LanguagePriority</code>、<code>AddDefaultCharset</code>の設定を参照すること。<br> | |||
<syntaxhighlight lang="apache"> | |||
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW | |||
AddDefaultCharset off | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> |