<?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>ke-tai.org &#187; mod_rewrite</title>
	<atom:link href="http://ke-tai.org/blog/tag/mod_rewrite/feed/" rel="self" type="application/rss+xml" />
	<link>http://ke-tai.org/blog</link>
	<description>ke-tai.org　ケータイプログラマのためのコミュニティサイト。携帯電話向けWeb開発の技術情報を扱っています。</description>
	<lastBuildDate>Thu, 09 Feb 2012 13:09:09 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ke-tai.org/blog/tag/mod_rewrite/feed/" />
		<item>
		<title>正しい作法にのっとったメンテナンス画面を出すための.htaccessサンプル</title>
		<link>http://ke-tai.org/blog/2009/06/16/mentehtaccess/</link>
		<comments>http://ke-tai.org/blog/2009/06/16/mentehtaccess/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 14:59:41 +0000</pubDate>
		<dc:creator>matsui</dc:creator>
				<category><![CDATA[サーバ]]></category>
		<category><![CDATA[記事紹介・リンク]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[メンテナンス]]></category>

		<guid isPermaLink="false">http://ke-tai.org/blog/?p=831</guid>
		<description><![CDATA[本日はケータイに限定された話題ではありませんが、Web担当者ForumさんにApacheで正しい作法でメンテナンス画面を表示するための方法が説明された良記事がありましたのでご紹介したいと思います。 &#160; →　We [...]]]></description>
			<content:encoded><![CDATA[<p>本日はケータイに限定された話題ではありませんが、Web担当者ForumさんにApacheで正しい作法でメンテナンス画面を表示するための方法が説明された良記事がありましたのでご紹介したいと思います。</p>
<p class="spacer-small">&nbsp;</p>
<p>→　<a href="http://web-tan.forum.impressrd.jp/e/2009/06/16/5880" target="_blank">Web担当者Forum　メンテナンス中画面を出す正しい作法と.htaccessの書き方</a> <small>[forum.impressrd.jp]</small></p>
<p class="spacer-small">&nbsp;</p>
<p>Webサイトを運営している場合、コンテンツやプログラム更新作業などでメンテナンス表示を出したいことは多いと思います。</p>
<p>この記事では、利用者にも検索エンジンにも適切にメンテナンスを通知するためのやり方が解説されています。</p>
<p class="spacer-small">&nbsp;</p>
<p>ポイントとなるのは次の2点です。</p>
<ul>
<li>.htaccess（もしくはhttpd.conf）とmod_rewirteを使ってどのページにアクセスされてもメンテ画面が出るようにする</li>
<li>検索エンジンには503を返し、メンテ中画面をインデックスされないようにする</li>
</ul>
<p class="spacer-small">&nbsp;</p>
<p>具体的な例としては次のようなサンプルが掲載されています。</p>
<pre class="super-pre-small"><code>ErrorDocument 503 /maintenance.html

&lt;IfModule mod_rewrite.c&gt;
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/maintenance.html [NC]
  RewriteCond %{REMOTE_ADDR} !=192.168.0.4
  RewriteCond %{REMOTE_ADDR} !=192.168.0.5
  RewriteRule ^.*$ - [R=503,L]
&lt;/IfModule&gt;

&lt;IfModule mod_headers.c&gt;
  Header set Retry-After "Sun, 14 Jun 2009 6:00:00 +0900
&lt;/IfModule&gt;</code></pre>
<p class="spacer-small">&nbsp;</p>
<p>192.168.0.4、192.168.0.5は、メンテナンス者のIPアドレスです。<br />
これで一般のユーザにはメンテ中画面を出したまま、確認作業が行えます。</p>
<p>また念のためmod_headersを使ってメンテ終了予定時刻も通知しているようです。</p>
<p>詳しくは上記サイトに、最低限バージョン・しっかりバージョンの2パターンが解説されていますので、そちらをご覧ください。</p>
<p class="spacer-small">&nbsp;</p>
<p>ケータイで503ステータスが正しく表示できるかが気になるところではありますが、ドコモ：P905i, au：W61CA, ソフトバンク：820Pの3機種で試してみたところ、どれも問題なく表示できました。<br />
（非対応の機種もあると思いますので、このあたり試してみた方はコメント欄などから情報をいただけると助かります）</p>
<p class="spacer-small">&nbsp;</p>
<p>意外と適当になりがちなメンテナンス画面ですが、おざなりになっていたという方は、こちらを参考にしっかり対応してみてはいかがでしょうか。</p>
<p class="spacer">&nbsp;</p>
<p><strong><em>関連：</em></strong></p>
<ul>
<li><em><a href="http://ke-tai.org/blog/2008/06/06/mobmod_rewrite/">ケータイで「mod_rewrite + セッション」を使う際の注意点</a></em> <img style="border:0px" src="http://b.hatena.ne.jp/entry/image/small/http://ke-tai.org/blog/2008/06/06/mobmod_rewrite/" alt="" /></li>
<li><em><a href="http://ke-tai.org/blog/2007/10/27/ketai_only/">ケータイからのみアクセスを許可する.htaccess</a></em> <img style="border:0px" src="http://b.hatena.ne.jp/entry/image/small/http://ke-tai.org/blog/2007/10/27/ketai_only/" alt="" /></li>
<li><em><a href="http://ke-tai.org/blog/2007/10/26/agent-rewrite/">ケータイキャリア毎に振り分けを行うには（mod_rewrite編）</a></em> <img style="border:0px" src="http://b.hatena.ne.jp/entry/image/small/http://ke-tai.org/blog/2007/10/26/agent-rewrite/" alt="" /></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ke-tai.org/blog/2009/06/16/mentehtaccess/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ke-tai.org/blog/2009/06/16/mentehtaccess/" />
	</item>
		<item>
		<title>ケータイで「mod_rewrite + セッション」を使う際の注意点</title>
		<link>http://ke-tai.org/blog/2008/06/06/mobmod_rewrite/</link>
		<comments>http://ke-tai.org/blog/2008/06/06/mobmod_rewrite/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 10:18:28 +0000</pubDate>
		<dc:creator>matsui</dc:creator>
				<category><![CDATA[DoCoMo]]></category>
		<category><![CDATA[サーバ]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[クッキー]]></category>
		<category><![CDATA[セッション]]></category>

		<guid isPermaLink="false">http://ke-tai.org/blog/?p=321</guid>
		<description><![CDATA[ここ最近は大きなニュースが多く、ニュース記事の紹介ばかりでしたので、ひさしぶりに技術メモ的なものを書きたいと思います。 &#160; 先日mod_rewriteを使っていて、セッション絡みで少しつまづいた件をご紹介します [...]]]></description>
			<content:encoded><![CDATA[<p>ここ最近は大きなニュースが多く、ニュース記事の紹介ばかりでしたので、ひさしぶりに技術メモ的なものを書きたいと思います。</p>
<p class="spacer-small">&nbsp;</p>
<p>先日mod_rewriteを使っていて、セッション絡みで少しつまづいた件をご紹介します。</p>
<p>実はPHPで動いているページを、「*.html」として静的コンテンツに見せる、というものを作ろうとしていました。<br />
.htaccessの内容としては次の通りです。</p>
<pre class="super-pre-small"><code>&lt;IfModule mod_rewrite.c&gt;
  RewriteEngine On
  RewriteRule ^([0-9A-Za-z~_\-\.]+)\.html$ /viewer.php?p=$1 [L]
&lt;/IfModule&gt;
</code></pre>
<p class="spacer-small">&nbsp;</p>
<p>ブラウザで正常に動作することを確認し、その後ドコモの実機でテストしたのですが、何度試してもセッションを引き継いでくれません。</p>
<p>それもそのはず、ドコモ端末はcookieが使えませんので、URLにセッションIDを埋めこんで引き継いでいく必要があります。<br />
上記のような設定では、mod_rewriteがセッションIDの引数をカットしてしまうのです。</p>
<p class="spacer-small">&nbsp;</p>
<p>というわけで、ケータイのセッションに対応するための設定は以下のようになります。</p>
<pre class="super-pre-small"><code>&lt;IfModule mod_rewrite.c&gt;
  RewriteEngine On
  RewriteRule ^([0-9A-Za-z~_\-\.]+)\.html$ /viewer.php?p=$1 [<strong>QSA,</strong>L]
&lt;/IfModule&gt;
</code></pre>
<p>[QSA,L]の部分の、QSAフラグがポイントとなります。</p>
<p>リファレンスによると、QSAフラグは次のように説明されています。</p>
<p class="super-pre-small"><small>このフラグは、置換文字列の中でマッチしたものを書き換えるのではなく、 そこにクエリー文字列部分を追加するように、書き換えエンジンに強制します。書き換えルールを通してクエリー文字列に何かデータを追加したい場合にこのフラグを使います。</small></p>
<p>ちょっとわかりづらい説明ですが、要はアクセスされたURLについていたクエリー文字列を、そのまま引き継ぐためのフラグです。<br />
これをつけることによって、セッションＩＤを失うことなくプログラムに渡すことができます。</p>
<p>次のような書き方でも、同じように動くようです。</p>
<pre class="super-pre-small"><code>viewer.php?p=$1&#038;%{QUERY_STRING} [L]</code></pre>
<p class="spacer-small">&nbsp;</p>
<p>なお、ケータイのセッションに関する詳しい説明は、こちらをご覧ください。<br />
→　<a href="http://ke-tai.org/blog/2007/12/12/php_session_new/">PHPでケータイからセッションを使う場合の設定方法</a></p>
<p class="spacer">&nbsp;</p>
<p><strong><em>関連：</em></strong></p>
<ul>
<li><em><a href="http://ke-tai.org/blog/2007/10/26/agent-rewrite/">ケータイキャリア毎に振り分けを行うには（mod_rewrite編）</a></em></li>
<li><em><a href="http://ke-tai.org/blog/2007/12/12/php_session_new/">PHPでケータイからセッションを使う場合の設定方法</a></em></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ke-tai.org/blog/2008/06/06/mobmod_rewrite/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ke-tai.org/blog/2008/06/06/mobmod_rewrite/" />
	</item>
	</channel>
</rss>

