• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「htaccess」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(Options: クリーンアップ。)
(HelpHub 移動メッセージで置き換え。)
 
1行目: 1行目:
{{CheckTrans}}
+
このページは https://ja.wordpress.org/support/article/htaccess へ移動しました。
 
+
.htaccess は、Apache が設定変更をディレクトリ毎に管理するための分散型の設定ファイルです。
+
 
+
WordPress は、このファイルを利用して、Aapche がルートディレクトリやサブディレクトリからファイルをどのように取り出すかを制御します。最大の用途として、WordPress はカスタムパーマリンクを実現するために、このファイルを変更します。
+
 
+
この文書は、おかしくなった .htaccess ファイルの復元に使えるかもしれません(例えばプラグインの誤動作)。
+
 
+
<div id="Basic_WP">
+
== WordPress の基本形 ==
+
</div>
+
 
+
<pre>
+
# BEGIN WordPress
+
<IfModule mod_rewrite.c>
+
RewriteEngine On
+
RewriteBase /
+
RewriteRule ^index\.php$ - [L]
+
RewriteCond %{REQUEST_FILENAME} !-f
+
RewriteCond %{REQUEST_FILENAME} !-d
+
RewriteRule . /index.php [L]
+
</IfModule>
+
# END WordPress
+
</pre>
+
 
+
<div id="Multisite">
+
== マルチサイト ==
+
</div>
+
 
+
<div id="WordPress_3.5_and_up">
+
=== WordPress 3.5 以降 ===
+
</div>
+
 
+
WordPress 3.5 以降でマルチサイトを有効にするなら、下記のいずれかを使います。
+
 
+
'''サブフォルダー方式の例'''
+
<pre>
+
RewriteEngine On
+
RewriteBase /
+
RewriteRule ^index\.php$ - [L]
+
 
+
# add a trailing slash to /wp-admin
+
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
+
 
+
RewriteCond %{REQUEST_FILENAME} -f [OR]
+
RewriteCond %{REQUEST_FILENAME} -d
+
RewriteRule ^ - [L]
+
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
+
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
+
RewriteRule . index.php [L]
+
</pre>
+
 
+
'''サブドメイン方式の例'''
+
 
+
<pre>
+
RewriteEngine On
+
RewriteBase /
+
RewriteRule ^index\.php$ - [L]
+
 
+
# add a trailing slash to /wp-admin
+
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
+
 
+
RewriteCond %{REQUEST_FILENAME} -f [OR]
+
RewriteCond %{REQUEST_FILENAME} -d
+
RewriteRule ^ - [L]
+
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
+
RewriteRule ^(.*\.php)$ $1 [L]
+
RewriteRule . index.php [L]
+
</pre>
+
 
+
 
+
<div id="WordPress_3.4_and_below">
+
=== WordPress 3.4 以前 ===
+
</div>
+
 
+
もともと WordPress 3.4 以前をインストールしていた時にマルチサイトを有効にした場合、下記のいずれかを使う必要があります:
+
 
+
'''サブフォルダー方式の例'''
+
 
+
<!-- WordPress 3.0 through 3.4.2 -->
+
<pre>
+
# BEGIN WordPress
+
RewriteEngine On
+
RewriteBase /
+
RewriteRule ^index\.php$ - [L]
+
 
+
# uploaded files
+
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
+
 
+
# add a trailing slash to /wp-admin
+
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
+
 
+
RewriteCond %{REQUEST_FILENAME} -f [OR]
+
RewriteCond %{REQUEST_FILENAME} -d
+
RewriteRule ^ - [L]
+
RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
+
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
+
RewriteRule . index.php [L]
+
# END WordPress
+
</pre>
+
 
+
'''サブドメイン方式の例'''
+
 
+
<pre>
+
# BEGIN WordPress
+
RewriteEngine On
+
RewriteBase /
+
RewriteRule ^index\.php$ - [L]
+
 
+
# uploaded files
+
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
+
 
+
RewriteCond %{REQUEST_FILENAME} -f [OR]
+
RewriteCond %{REQUEST_FILENAME} -d
+
RewriteRule ^ - [L]
+
RewriteRule . index.php [L]
+
# END WordPress
+
</pre>
+
 
+
 
+
<div id="WordPress_MU">
+
=== WordPress MU ===
+
</div>
+
 
+
最初は WordPress MU (WPMU) を使っていて、新しいバージョンの WordPress マルチサイトへ移行した場合は、.htaccess のルールがもっと複雑です:
+
 
+
'''サブフォルダー方式の例'''
+
 
+
<pre>
+
RewriteEngine On
+
RewriteBase /
+
 
+
# BEGIN WordPress
+
#uploaded files
+
RewriteRule ^(.*/)?files/$ index.php [L]
+
RewriteCond %{REQUEST_URI} !.*wp-content/plugins.*
+
RewriteRule ^(.*/)?files/(.*) wp-includes/ms-files.php?file=$2 [L]
+
 
+
# add a trailing slash to /wp-admin
+
RewriteCond %{REQUEST_URI} ^.*/wp-admin$
+
RewriteRule ^(.+)$ $1/ [R=301,L]
+
 
+
RewriteCond %{REQUEST_FILENAME} -f [OR]
+
RewriteCond %{REQUEST_FILENAME} -d
+
RewriteRule . - [L]
+
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
+
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
+
RewriteRule . index.php [L]
+
# END WordPress
+
</pre>
+
 
+
 
+
<div id="General_Examples">
+
== 一般的な例 ==
+
</div>
+
 
+
=== Options ===
+
 
+
[http://httpd.apache.org/docs/trunk/mod/core.html#options Options ディレクティブ] の有効な値は、以下を任意に組み合わせたものです。
+
 
+
前に '''+''' を付けたオプションは、現在有効なオプションへ追加されます。前に '''-''' を付けたオプションは現在有効なオプションから削除されます。
+
 
+
; None : すべてのオプションを無効にする。
+
; All : MultiViews を除くすべてのオプションを有効にする。これがデフォルト。
+
; ExecCGI : mod_cgi による CGI スクリプトの実行を許可する。
+
; FollowSymLinks : サーバが、このディレクトリ内でシンボリックリンクをたどれるようにする。
+
; Includes : mod_include が提供する SSI (Server-side includes) を有効にする。
+
; IncludesNOEXEC : SSI を有効にするが、<code>#exec cmd<code> と <code>#exec cgi</code> は無効にする。
+
; Indexes : もし、URL がディレクトリにマップするリクエストであって、かつ DirectoryIndex で指定したファイルが無ければ、ディレクトリ内の一覧を整形して返す。
+
; MultiViews : mod_negotiation による [http://httpd.apache.org/docs/trunk/content-negotiation.html コンテントネゴシエーション] された "MultiViews" を許可する。
+
; SymLinksIfOwnerMatch : シンボリックリンクの参照先とシンボリックリンク自体の所有ユーザ ID が同じ場合のみ、シンボリックリンクをたどる。
+
 
+
次の例はすべてのオプションを無効にした上で、FollowSymLinks だけを有効にします。これは mod_rewrite に必要な設定です。
+
 
+
<pre>
+
Options None
+
Options FollowSymLinks
+
</pre>
+
 
+
 
+
=== DirectoryIndex ===
+
 
+
[http://httpd.apache.org/docs/trunk/mod/mod_dir.html#directoryindex DirectoryIndex] ディレクティブは、ディレクトリ自体がリクエストされた時に Apache が探すファイルを指定します。
+
 
+
複数の URL を指定できます。その場合、最初に見つかったファイルが使用されます。
+
 
+
<pre>
+
DirectoryIndex index.php index.html /index.php
+
</pre>
+
 
+
 
+
=== DefaultLanguage ===
+
 
+
[http://httpd.apache.org/docs/trunk/mod/mod_mime.html#defaultlanguage DefaultLanguage] ディレクティブは、明示的な言語タグが指定されていないファイルについて使用する、デフォルトの言語を指定します。
+
 
+
<pre>
+
DefaultLanguage en
+
</pre>
+
 
+
 
+
<div id="Default_Charset">
+
=== デフォルトの文字セット ===
+
</div>
+
 
+
HTTP ヘッダーに含めて送信されるデフォルトの文字エンコーディングを指定します。[http://www.w3.org/International/questions/qa-htaccess-charset Setting charset information in .htaccess] を見てください。
+
 
+
<pre>
+
AddDefaultCharset UTF-8
+
</pre>
+
 
+
'''特定のファイルタイプに文字セットを指定する'''
+
 
+
<pre>
+
AddType 'text/html; charset=UTF-8' .html
+
</pre>
+
 
+
'''特定のファイルについてセットする'''
+
 
+
<pre>
+
<Files "example.html">
+
AddCharset UTF-8 .html
+
</Files>
+
</pre>
+
 
+
 
+
=== ServerSignature ===
+
 
+
[http://httpd.apache.org/docs/trunk/mod/core.html#serversignature ServerSignature] ディレクティブは、サーバが生成するドキュメントの末尾に付けるフッターの設定を行います。サーバのバージョンと仮想ホスト名を含む 1 行を、サーバが生成するドキュメント(エラーメッセージ、FTP のディレクトリリスト、mod_status や mod_info の出力など)へ追加できます。
+
 
+
; On : サーバのバージョン、稼動中の仮想ホストの ServerName が書かれた 1 行を追加
+
; Off : フッターをつけない
+
; Email : 参照されたドキュメントの ServerAdmin を指す "mailto:" を追加
+
 
+
<pre>
+
SetEnv SERVER_ADMIN admin@site.com
+
ServerSignature Email
+
</pre>
+
 
+
 
+
<div id="Force_Files_to_be_Downloaded">
+
=== ファイルをダウンロードさせる ===
+
</div>
+
 
+
下記の例は、指定した拡張子を持つファイルがリクエストされた場合にブラウザーに表示するのではなく、「名前をつけて保存」などのダイアログでクライアントがダウンロードできるようにします。
+
 
+
<pre>
+
AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4
+
</pre>
+
 
+
 
+
<div id="HTTP_Compression">
+
=== HTTP 圧縮 ===
+
</div>
+
 
+
AddOutputFilter ディレクティブは、ファイル名の拡張子にフィルターを対応させます。フィルターは、クライアントへ送られる前に応答内容を処理します。これは、ほかのところで定義されたフィルター(SetOutputFilter と AddOutputFilterByType を含む)に加えて実行されます。マッピングは、実施済みのマッピングにマージされます。同じ拡張子についてすでにマッピングがあると、それを上書きします。
+
 
+
これも見てください: https://developers.google.com/speed/docs/insights/EnableCompression
+
 
+
<pre>
+
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
+
BrowserMatch ^Mozilla/4 gzip-only-text/html
+
BrowserMatch ^Mozilla/4\.0[678] no-gzip
+
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
+
</pre>
+
 
+
'''特定のファイルを圧縮する'''
+
 
+
<pre>
+
<FilesMatch "\.(js|css|txt|xml)$">
+
SetOutputFilter DEFLATE
+
</FilesMatch>
+
</pre>
+
 
+
 
+
<div id="Send_Custom_HTTP_Headers">
+
=== カスタム HTTP ヘッダーを送信 ===
+
</div>
+
 
+
Header ディレクティブは、すべてのリクエストまたは特定のファイルについて、追加の HTTP ヘッダーを送信します。サイトの HTTP ヘッダーは次のようなツールで見ることができます: [https://getfirebug.com/ Firebug], Chrome Dev Tools, [https://www.wireshark.org/ Wireshark] または [http://www.askapache.com/online-tools/http-headers-tool/ オンラインツール]。
+
 
+
<pre>
+
Header set X-Pingback "http://www.askapache.com/xmlrpc.php"
+
Header set Content-Language "en-US"
+
</pre>
+
 
+
 
+
<div id="Unset_HTTP_Headers">
+
=== HTTP ヘッダーを外す ===
+
</div>
+
 
+
HTTP ヘッダーを外します。'''always''' を指定すると、ヘッダー削除を強力に行います。
+
 
+
<pre>
+
Header unset Pragma
+
Header always unset WP-Super-Cache
+
Header always unset X-Pingback
+
</pre>
+
 
+
 
+
<div id="Password_Protect_Login">
+
=== ログインのパスワード保護 ===
+
</div>
+
 
+
これは <tt>wp-login.php</tt> ファイルを保護するのにとても便利です。パスワード生成に [http://www.askapache.com/online-tools/htpasswd-generator/ htpasswd generator] を利用できます。
+
 
+
'''[http://ja.wikipedia.org/wiki/Basic認証 Basic 認証]'''
+
 
+
<pre>
+
<Files wp-login.php>
+
AuthType Basic
+
AuthName "Password Protected"
+
AuthUserFile /full/path/to/.htpasswd
+
Require valid-user
+
Satisfy All
+
</Files>
+
</pre>
+
 
+
'''[http://ja.wikipedia.org/wiki/Digest認証 Digest 認証]'''
+
+
<pre>
+
<Files wp-login.php>
+
AuthType Digest
+
AuthName "Password Protected"
+
AuthDigestDomain /wp-login.php https://www.askapache.com/wp-login.php
+
AuthUserFile /full/path/to/.htpasswd
+
Require valid-user
+
Satisfy All
+
</Files>
+
</pre>
+
 
+
 
+
<div id="Require_Specific_IP">
+
=== IP アドレス制限 ===
+
</div>
+
 
+
特定の IP アドレスだけにアクセスを許可する方法です。
+
 
+
<pre>
+
ErrorDocument 401 default
+
ErrorDocument 403 default
+
 
+
<Files wp-login.php>
+
Order deny,allow
+
Deny from all
+
Allow from 198.101.159.98 localhost
+
</Files>
+
</pre>
+
 
+
 
+
<div id="Protect_Sensitive_Files">
+
=== 機密ファイルを保護 ===
+
</div>
+
 
+
この例は、wp-config ファイル、error_log、php.ini および htaccess/htpasswd ファイルへの Web アクセスを拒否します。
+
 
+
<pre>
+
<FilesMatch "^.*(error_log|wp-config\.php|php.ini|\.[hH][tT][aApP].*)$">
+
Order deny,allow
+
Deny from all
+
</FilesMatch>
+
</pre>
+
 
+
 
+
<div id="Require_SSL">
+
=== SSL を要求する ===
+
</div>
+
 
+
この例は、SSL を強制し、正式なホスト名を要求します。これらの条件を満たさなければ SSL バージョンへリダイレクトします。<tt>/wp-admin/.htaccess</tt> の中で役立ちます。
+
 
+
<pre>
+
SSLOptions +StrictRequire
+
SSLRequireSSL
+
SSLRequire %{HTTP_HOST} eq "www.wordpress.com"
+
ErrorDocument 403 https://www.wordpress.com
+
</pre>
+
 
+
 
+
<div id="External_Resources">
+
== 外部リソース ==
+
</div>
+
 
+
* [http://httpd.apache.org/docs/trunk/howto/htaccess.html 公式 Apache チュートリアル: .htaccess ファイル]
+
* [http://httpd.apache.org/docs/trunk/mod/quickreference.html Official Htaccess ディレクティブ クイックリファレンス]
+
* [http://www.askapache.com/htaccess/htaccess.html Htaccess チュートリアル]
+
* [https://developers.google.com/speed/docs/insights/rules Google PageSpeed for Developers]
+
* [http://perishablepress.com/stupid-htaccess-tricks/ Stupid Htaccess Tricks]
+
* [http://www.askapache.com/htaccess/crazy-advanced-mod_rewrite-tutorial.html Advanced Mod_Rewrite]
+
 
+
 
+
<div id="See_Also">
+
== あわせて読もう ==
+
</div>
+
 
+
* [[htaccess_for_subdirectories]]/[[:en:htaccess_for_subdirectories|en]]
+
* [[Using_Permalinks|パーマリンクの使い方]]/[[:en:Using_Permalinks|en]]
+
* [[Changing File Permissions|ファイルパーミッションの変更]]/[[:en:Changing File Permissions|en]]
+
* [[UNIX Shell Skills]]/[[:en:UNIX Shell Skills|en]]
+
 
+
{{原文|htaccess|149417}} <!-- 22:37, 2 February 2015 Jdgrimes 版 -->
+
 
+
[[Category:WordPress について]]
+
[[Category:トラブルシューティング]]
+
[[Category:上級トピック]]
+
[[Category:セキュリティ]]
+
 
+
[[en:htaccess]]
+

2019年10月16日 (水) 11:18時点における最新版

このページは https://ja.wordpress.org/support/article/htaccess へ移動しました。