<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>Shifft - Web Design &#38; Development &#187; Development</title>
	<atom:link href="http://www.shifft.in/blog/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shifft.in</link>
	<description>ShifftはWebサイトの制作をしています。</description>
	<lastBuildDate>Tue, 11 May 2010 09:38:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.shifft.in/blog/category/development/feed/" />
		<item>
		<title>wp_enqueue_scriptで外部のjQueryライブラリを使う</title>
		<link>http://www.shifft.in/blog/wordpress/using-wp_enqueue_script/</link>
		<comments>http://www.shifft.in/blog/wordpress/using-wp_enqueue_script/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 18:08:01 +0000</pubDate>
		<dc:creator>Masayoshi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.shifft.in/?p=176</guid>
		<description><![CDATA[WordPressで自前のスクリプトを、wp_enqueue_script関数を使って読み込ませてみます。]]></description>
			<content:encoded><![CDATA[<p>通常のHTMLでjQueryを使う場合、下記のようにライブラリを読み込ませるだけで特に問題はありません。</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;/js/jquery.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></pre></td></tr></table></div>




<p>ところがWordPressでは各種プラグインがさまざまなJavaScriptのフレームワークを使うので、コンフリクト（競合）を起こさないようにグローバル変数を変えていたり、何重にもライブラリを読み込まないようにしたり、適切な順番で読み込んだりするような配慮がなされています。</p>

<p>では自前でスクリプト（今回はjQuery）を設置する場合は、どのようにすればスマートに読み込ますことができるでしょうか。</p>

<p>いろいろ調べていると、<code>wp_enqueue_script()</code>という<code>wp_head()</code>にフックする関数がありました。<br />
これを使うとほかのプラグインなどとは競合せずに、安全にjsライブラリや自前のjsファイルを読み込むようになるようです。</p>

<p>また、WordPressには主要なライブラリが組み込み済みなので、テーマファイル内に自分でライブラリを設置しなくても、この関数を使えば使用できるようになります。</p>

<p>関数は以下のように呼び出します。</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">wp_enqueue_script<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$handle</span><span style="color: #339933;">,</span> <span style="color: #000088;">$src</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span> <span style="color: #000088;">$deps</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$ver</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>




<p>
<strong>$handle</strong><br />
スクリプトの識別名<br />
<strong>$src(optional)</strong><br />
スクリプトファイルへのパス。http://で始まるURLまたはサイトルートから絶対パス。<br />
<strong>$deps(optional)</strong><br />
依存するスクリプトのリスト（配列）<br />
<strong>$ver(optional)</strong><br />
スクリプトのバージョン 
</p>

<h3>wp_enqueue_script()の実装例</h3>

<p>実際は下記のコードを<code>&lt;head&gt;&lt;/head&gt;</code>内に読み込ませます。<br />
注意点としては、必ず<code>&lt;?php wp_head(); ?&gt;</code>の前に記述します。そうしなければフックしないのでロードされません。</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> wp_enqueue_script<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'jquery'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> wp_enqueue_script<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'sample'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'/wp-content/themes/yourthemes/js/sample.js'</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'jquery'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'0.1.0'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> wp_head<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>




<p>2行目の第3引数に依存するファイルを指定すると、読み込む順番も調整してくれます。</p>

<p>この状態でHTMLソースを見るとファイルを正しく読み込んでいることが確認できますが、前述の通りグローバル変数が変わっているので、自前のjsファイルの中身を修正する必要があります。</p>

<p>WordPressではjQueryという変数名でアクセスするので、<code>$</code>を<code>jQuery</code>にすべて修正します。これで正しく動作するはずです。</p>

<p>すべて置換するのが面倒だったりする場合は、自前の<code>function</code>だけ<code>$</code>でアクセスできるように下記のコードで括ります。</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">jQuery<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//下のfunction内だけ$が有効</span>
	$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;サンプルコード&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>




<a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2NvZGV4LndvcmRwcmVzcy5vcmcvRnVuY3Rpb25fUmVmZXJlbmNlL3dwX2VucXVldWVfc2NyaXB0">Function Reference/wp enqueue script << WordPress Codex</a>（英語）

<h3>関連記事</h3><ul class="related_post"><li><a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaGlmZnQuaW4vYmxvZy9kZXZlbG9wbWVudC9pZTYtZnVuZXJhbC8=" title=\"IE6よ 安らかにお眠りください（IE6判別コード付き）\">IE6よ 安らかにお眠りください（IE6判別コード付き）</a></li><li><a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaGlmZnQuaW4vYmxvZy9kZXZlbG9wbWVudC9tYWludGVuYW5jZS1tb2RlLw==" title=\"メンテナンス画面を表示させる方法(Apache 1.3対応版)\">メンテナンス画面を表示させる方法(Apache 1.3対応版)</a></li><li><a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaGlmZnQuaW4vYmxvZy94aHRtbC9jYW5vbmljYWxpemF0aW9uLw==" title=\"canonical属性を導入してみた\">canonical属性を導入してみた</a></li><li><a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaGlmZnQuaW4vYmxvZy9mZWF0dXJlZC93b3JkcHJlc3MtcGx1Z2luLw==" title=\"Shifftで使用しているWordPressのプラグイン\">Shifftで使用しているWordPressのプラグイン</a></li></ul> <img src="http://www.shifft.in/wp-content/plugins/feed-statistics.php?view=1&post_id=176" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.shifft.in/blog/wordpress/using-wp_enqueue_script/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.shifft.in/blog/wordpress/using-wp_enqueue_script/" />
	</item>
		<item>
		<title>IE6よ 安らかにお眠りください（IE6判別コード付き）</title>
		<link>http://www.shifft.in/blog/development/ie6-funeral/</link>
		<comments>http://www.shifft.in/blog/development/ie6-funeral/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 15:58:21 +0000</pubDate>
		<dc:creator>Masayoshi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.shifft.in/?p=174</guid>
		<description><![CDATA[2010年3月4日、Internet Explorer（IE）6を弔う「葬儀」が、米コロラド州デンバーで行われました。というわけで、今後Webサイトを作るときはIE6を完全に無視し続けていきます。]]></description>
			<content:encoded><![CDATA[<p>2010年3月4日、Internet Explorer（IE）6を弔う「葬儀」が、米コロラド州デンバーで行われました。</p>

<a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2llNmZ1bmVyYWwuY29tLw=="><img src="http://www.shifft.in/wp-content/uploads/postpics/2010/03/ie6-funeral_01-300x237.jpg" alt="IE6 Funeral" title="IE6 Funeral" width="300" height="237" class="aligncenter size-medium wp-image-173" /></a>

<p>この<a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2llNmZ1bmVyYWwuY29tLw==">IE6 Funeral</a>のイベントでIE6は葬られたわけですが、実際のところGoogleもサポートを打ち切った<sup>*1</sup>ことで、IE6離れはますます加速されることと思います。</p>

<p>そういうわけで私も今後Webサイトを作るときは、IE6を完全に無視し続けていきます。（事前の確認は必要ですが）たとえ仕事でも。</p>

<p>どうしても「IE6が必要だ」と迫られたときは、IE6のセキュリティホールの問題とパフォーマンスの悪さ、そもそもなぜ必要なのか、とにかく時代遅れである、ということを説いていこうと思います。</p>

<h3>jQueryでIE6を判別する</h3>

<p>ShifftもIE6には対応させていませんが、崩れて表示されるというわけではなく、<a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2phLndpa2lwZWRpYS5vcmcvd2lraS9Vc2VyX0FnZW50">User Agent</a>でIE6を判別して<a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaGlmZnQuaW4vaWU2Lw==">専用のページ</a>に飛ばすようにしています。</p>

<p>jQueryを使用している場合は下記の簡単なスクリプトを読ませることで、IE6のみを特定のページに飛ばすことができます。</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">&lt;script type=&quot;text/javascript&quot; src=&quot;jquery-1.4.2.min.js&quot;&gt;&lt;/script&gt;
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #003366; font-weight: bold;">var</span> IE6 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>navigator.<span style="color: #660066;">userAgent</span>.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;MSIE 6&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;=</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> <span style="color: #003366; font-weight: bold;">true</span> <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>IE6<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		window.<span style="color: #660066;">location</span>.<span style="color: #660066;">href</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;/ie6/&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>




<p>飛ばした先の専用ページで、「IE6はやめれ！」というアナウンスをすればOKですね！</p>
<h3>関連記事</h3><ul class="related_post"><li><a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaGlmZnQuaW4vYmxvZy93b3JkcHJlc3MvdXNpbmctd3BfZW5xdWV1ZV9zY3JpcHQv" title=\"wp_enqueue_scriptで外部のjQueryライブラリを使う\">wp_enqueue_scriptで外部のjQueryライブラリを使う</a></li><li><a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaGlmZnQuaW4vYmxvZy9kZXZlbG9wbWVudC9tYWludGVuYW5jZS1tb2RlLw==" title=\"メンテナンス画面を表示させる方法(Apache 1.3対応版)\">メンテナンス画面を表示させる方法(Apache 1.3対応版)</a></li><li><a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaGlmZnQuaW4vYmxvZy94aHRtbC9jYW5vbmljYWxpemF0aW9uLw==" title=\"canonical属性を導入してみた\">canonical属性を導入してみた</a></li></ul> <img src="http://www.shifft.in/wp-content/plugins/feed-statistics.php?view=1&post_id=174" width="1" height="1" style="display: none;" /><ol class="footnotes"><li id="footnote_0_174" class="footnote">Googleは3月11日にYouTubeの対応を打ち切るほか、Google ドキュメントのサポートも終了するようです。</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.shifft.in/blog/development/ie6-funeral/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.shifft.in/blog/development/ie6-funeral/" />
	</item>
		<item>
		<title>メンテナンス画面を表示させる方法(Apache 1.3対応版)</title>
		<link>http://www.shifft.in/blog/development/maintenance-mode/</link>
		<comments>http://www.shifft.in/blog/development/maintenance-mode/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 16:36:28 +0000</pubDate>
		<dc:creator>Masayoshi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.shifft.in/?p=144</guid>
		<description><![CDATA[Webサービスを運営する上で、リリース後にサイトを改修するときにサービスを一時停止しなければならないケースはよくあります。そういうときに表示させる「メンテナンス中」画面を、Apache 1.3の環境で表示させてみましょう。]]></description>
			<content:encoded><![CDATA[<p>Webサービスを運営する上で、リリース後にサイトを改修することがあります。</p>

<p>普通はローカル環境で開発をして本番用のサーバーへアップするので問題は少ないのですが、ローカル環境と本番環境とでサーバーの設定が違っていたために上手く動作せず、ちょっとした手直しが必要になったり、大掛かりなファイルの入れ替え作業をする場合などでサービスを一時停止しなければならないケースはよくあります。こういうときは「メンテナンス中」の画面を表示させて、サービスにアクセスできないようにします。</p>

<p>これを実現させるためには下記の記事が参考になるのですが、これはApache 2.2系で検証済みのTipsで、Apache 1.3系では上手く動作しないようです。（原因は後述）</p>

<p><a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3dlYi10YW4uZm9ydW0uaW1wcmVzc3JkLmpwL2UvMjAwOS8wNi8xNi81ODgw">メンテナンス中画面を出す正しい作法と.httaccessの書き方 | Web担当者Forum</a></p>

<p>そこで今回は、Apache 1.3系でメンテナンスモードを表示させる方法をまとめてみます。</p>

<p>以下の条件が今回のポイントです。</p>

<ul>
<li>特定のIPからのアクセスは普通にサイト閲覧が可能</li>
<li>それ以外のIPからのアクセスなら、メンテナンス画面を表示</li>
<li>HTTPヘッダに503のステータスコードを返す</li>
</ul>

<p>やってることは簡単です。それではGO!!</p>

<h3>1. メンテナンス時にアップロードするためのディレクトリを作成する</h3>
<p>メンテナンス画面の表示に必要なファイル群をまとめるために、以下のようなディレクトリをサーバールートに作成します。<br />
<code>maintenance/</code></p>

<p>もちろん<code>construction/</code>でも<code>temp/</code>でもなんでも良いです。</p>

<h3>2. エラー画面のページを作成する</h3>
<p><code>maintenance/</code>の下に<code>index.html</code>などの名前で「メンテナンス中」のページを作成します。<br />
できるだけ遊び心をもってデザインをすると、ユーザーは「しょうがないっか～」みたいな感じで思ってくれます。</p>

<p>このときの注意点としては、画像やCSS、JSのファイルまでのパスは/（スラッシュ）のようなルートから始まる書き方でないと、上手くパスが繋がりません。<br />
使用する画像も<code>maintenance/</code>の中に一緒にしておくと、管理が煩雑にならないと思います。</p>

<h3>3. 503エラーを吐く 503.php を用意する</h3>
<p>実は先ほどの参考記事だと<code>.htaccess</code>のmod_rewriteの記述で503エラーを出す指定が書かれているのですが、Apache 1.3系では300番台と400番台のエラーしか出せません。<br />
そこで、PHPを使って503エラーを吐かせちゃいましょう。</p>

<p><code>maintenance/</code>の下に<code>503.php</code>を作成し、下記の内容を記述します。</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">header</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP/1.0 503 Service Temporarily Unavailable'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/index.html'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>




<p>3行目の<code>/index.html</code>は、2.で作成したメンテナンス用のページを指定します。</p>

<h3>4. .htaccessに記述する</h3>
<p>いよいよ大詰め。サーバールート上の<code>.htaccess</code>内にリダイレクト処理に関する記述を書きましょう。</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">RewriteCond</span> %{REQUEST_URI} !\.css$
<span style="color: #00007f;">RewriteCond</span> %{REQUEST_URI} !\.js$
<span style="color: #00007f;">RewriteCond</span> %{REQUEST_URI} !\.jpg$
<span style="color: #00007f;">RewriteCond</span> %{REQUEST_URI} !\.gif$
<span style="color: #00007f;">RewriteCond</span> %{REQUEST_URI} !\.png$
<span style="color: #00007f;">RewriteCond</span> %{REQUEST_URI} !\.swf$
<span style="color: #00007f;">RewriteCond</span> %{REMOTE_ADDR} !=192.168.0.1 <span style="color: #adadad; font-style: italic;">#(管理者のIPアドレス)</span>
<span style="color: #00007f;">RewriteCond</span> %{REQUEST_FILENAME} !503.php
<span style="color: #00007f;">RewriteRule</span> ^.*$ /maintenance/503.php [R,L]</pre></td></tr></table></div>




<p>1行目～6行目は、各画像ファイルなどをリダイレクトの対象からはずすための設定です。<br />
これをしないと画像やCSSなどのファイルもリダイレクトしてしまい、正しく反映できません。</p>

<p>7行目で指定したIPのPCからアクセスするとリダイレクトの対象から外れるので、管理者だけは実際の動作を見ながら作業を行うことができます。</p>

<p>8行目は、リダイレクト後の無限ループを回避するための記述です。</p>

<p>9行目で実際のリダイレクト処理が書かれています。</p>

<p>検索クローラーは503のステータスコードを受け取るとページをキャッシュしないらしいのですが、一応心配な方は<code>robot.txt</code>に下記を加えておいてください。</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="robots" style="font-family:monospace;">User-Agent<span style="color: #66cc66;">:</span> *
<span style="color: #b1b100;">Disallow</span><span style="color: #66cc66;">:</span> /maintenance/</pre></td></tr></table></div>




<p>以上で完成です。</p>

<p><strong>おまけ</strong><br />
メンテナンス画面のデザイン参考にどうぞ。<br />
<a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zbWFzaGluZ21hZ2F6aW5lLmNvbS8yMDA5LzA2LzEyL2VmZmVjdGl2ZS1tYWludGVuYW5jZS1wYWdlcy1leGFtcGxlcy1hbmQtYmVzdC1wcmFjdGljZXMv">Effective Maintenance Pages: Examples and Best Practices | Design Showcase | Smashing Magazine</a></p>
<h3>関連記事</h3><ul class="related_post"><li><a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaGlmZnQuaW4vYmxvZy93b3JkcHJlc3MvdXNpbmctd3BfZW5xdWV1ZV9zY3JpcHQv" title=\"wp_enqueue_scriptで外部のjQueryライブラリを使う\">wp_enqueue_scriptで外部のjQueryライブラリを使う</a></li><li><a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaGlmZnQuaW4vYmxvZy9kZXZlbG9wbWVudC9pZTYtZnVuZXJhbC8=" title=\"IE6よ 安らかにお眠りください（IE6判別コード付き）\">IE6よ 安らかにお眠りください（IE6判別コード付き）</a></li><li><a href="http://www.shifft.in/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaGlmZnQuaW4vYmxvZy94aHRtbC9jYW5vbmljYWxpemF0aW9uLw==" title=\"canonical属性を導入してみた\">canonical属性を導入してみた</a></li></ul> <img src="http://www.shifft.in/wp-content/plugins/feed-statistics.php?view=1&post_id=144" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.shifft.in/blog/development/maintenance-mode/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.shifft.in/blog/development/maintenance-mode/" />
	</item>
	</channel>
</rss>
<br />
<b>Warning</b>:  mkdir() [<a href='function.mkdir'>function.mkdir</a>]: Permission denied in <b>/virtual/shifft/public_html/www.shifft.in/wp-content/plugins/feedlogger/lib/FeedLogger.php</b> on line <b>121</b><br />
<br />
<b>Warning</b>:  chmod() [<a href='function.chmod'>function.chmod</a>]: Unable to access /virtual/shifft/public_html/www.shifft.in/wp-content/plugins/feedlogger/data/logs/2012 in <b>/virtual/shifft/public_html/www.shifft.in/wp-content/plugins/feedlogger/lib/FeedLogger.php</b> on line <b>122</b><br />
<br />
<b>Warning</b>:  chmod() [<a href='function.chmod'>function.chmod</a>]: stat failed for /virtual/shifft/public_html/www.shifft.in/wp-content/plugins/feedlogger/data/logs/2012 in <b>/virtual/shifft/public_html/www.shifft.in/wp-content/plugins/feedlogger/lib/FeedLogger.php</b> on line <b>122</b><br />

