<?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/"
	>

<channel>
	<title>ゆーすけぶろぐ &#187; apache</title>
	<atom:link href="http://yusukezzz.net/blog/archives/tag/apache/feed" rel="self" type="application/rss+xml" />
	<link>http://yusukezzz.net/blog</link>
	<description>yusukezzz&#039;s weblog... ぷろぐらむとか ruby, android, java, thinkpad, milestone2</description>
	<lastBuildDate>Wed, 28 Dec 2011 13:21:54 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>さくらのVPS契約＆wordpress周りの再設定</title>
		<link>http://yusukezzz.net/blog/archives/1996</link>
		<comments>http://yusukezzz.net/blog/archives/1996#comments</comments>
		<pubDate>Sun, 30 Jan 2011 05:41:49 +0000</pubDate>
		<dc:creator>yusukezzz</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://yusukezzz.net/blog/?p=1996</guid>
		<description><![CDATA[先日、さくらのVPSを契約し、yusukezzz.netのコンテンツ全てを移行しました その際、wordpress周りの設定を大分弄ったので備忘録として残しておきます パフォーマンスの指標として今回はYSlowを使って測 [...]]]></description>
			<content:encoded><![CDATA[<p>先日、さくらのVPSを契約し、yusukezzz.netのコンテンツ全てを移行しました</p>
<p>その際、wordpress周りの設定を大分弄ったので備忘録として残しておきます<br />
パフォーマンスの指標として今回はYSlowを使って測定しました<br />
変更前は記録していないのですが、確かGrade Dで50台だったと思います…</p>
<p>設定内容はググって出てきたものをほとんどコピペしてるだけです</p>
<p>まずはhttpd.conf</p>
<pre class="brush: plain; title: ; notranslate">
&lt;VirtualHost *&gt;
～略
    &lt;Directory /your-htdocs-root&gt;
        AllowOverride All
        Options FollowSymLinks -MultiViews

        # gzip compress setting
        SetOutputFilter DEFLATE
        # Netscape 4.x has some problems...
        BrowserMatch ^Mozilla/4 gzip-only-text/html

        # Netscape 4.06-4.08 have some more problems
        BrowserMatch ^Mozilla/4\.0[678] no-gzip

        # MSIE masquerades as Netscape, but it is fine
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

        # ここからフィルター設定
        FilterDeclare Compression CONTENT_SET
        FilterProvider Compression DEFLATE Content-Type $text/plain
        FilterProvider Compression DEFLATE Content-Type $text/css
        FilterProvider Compression DEFLATE Content-Type $application/xhtml
        FilterProvider Compression DEFLATE Content-Type $application/xml
        FilterProvider Compression DEFLATE Content-Type $application/xhtml+xml
        FilterProvider Compression DEFLATE Content-Type $application/rss+xml
        FilterProvider Compression DEFLATE Content-Type $application/atom+xml
        FilterProvider Compression DEFLATE Content-Type $application/x-javascript
        FilterProvider Compression DEFLATE Content-Type $image/svg+xml
        FilterProvider Compression DEFLATE Content-Type $text/html
        FilterProvider Compression DEFLATE Content-Type $application/javascript
        FilterChain Compression
        # ここまでフィルター設定

        # Don't append Vary heder for specific files
        SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|zip|lzh|exe)$ dont-vary

        # Make sure proxies don't deliver the wrong content
        Header append Vary User-Agent env=!dont-vary
        Header append Vary Accept-Encoding env=!dont-vary
        # expires headers
        &lt;FilesMatch &quot;\.(ico|jpg|jpeg|png|gif|js|css|swf)$&quot;&gt;
            ExpiresActive On
            ExpiresDefault &quot;access plus 3 days&quot;
        &lt;/FilesMatch&gt;
    &lt;/Directory&gt;
～略
&lt;/VirtualHost&gt;
</pre>
<p>次にmysqlのクエリキャッシュ設定</p>
<pre class="brush: plain; title: ; notranslate">
[mysqld]
# query cache
query_cache_limit=1M
query_cache_min_res_unit=4k
query_cache_size=24M
query_cache_type=1
</pre>
<p>最後に、wp-minify の導入<br />
wp-minify はwordpress内で使用されているjavascript, cssを1ファイルにまとめてくれるプラグインです<br />
インストール後、wp-minify/cache に書き込み権限を与えておきます</p>
<p>APCや eAcceralatorなどもある程度効果ありますね<br />
yusukezzz.netはAPCを導入しています</p>
<p>以上の設定を施したところ、YSlowのスコアは以下のようになりました<br />
Grade A<br />
Overall performance score 90<br />
後はhttpリクエスト数を減らせ（CSSスプライトが未実施）＆CDN使え（パフォーマンスと無関係）の2点が評価悪いだけなので、今回はこの辺までで十分だと思います<br />
#CDNについては about:config からYSlowの設定を弄ることで強制的にオレオレCDNを登録出来るそうですが、スコアが上がるだけなのでやってないです<br />
CSSスプライトはテーマによっては対応してそうなので、もう少しいい評価になるかもしれません</p>
<p>＃2011/02/19　追記<br />
そもそも YSlow の RuleSet を Small site or Blog にするべきでした<br />
その状態で計測するとスコアは94まで行きました<br />
あと、下記チューニングの通りにデーモンを停止してみました<br />
<a href="http://tanaka.sakura.ad.jp/archives/001065.html" taget="_blank">CentOSをサーバーとして活用するための基本的な設定 (さくらインターネット創業日記)</a><br />
＃追記終了</p>
<p>以下参考サイト一覧（順不同）<br />
<a href="http://dsas.blog.klab.org/archives/50602499.html" taget="_blank">DSAS開発者の部屋:負荷分散環境でブラウザキャッシュが効かないときは &#8211; ETagの解説 -</a><br />
<a href="http://www.inter-office.co.jp/contents/193/" taget="_blank">Webサイトの高速化 ルール13　ETagを正しく設定する! (Yahoo! developer netoworkより翻訳) | 株式会社インターオフィス</a><br />
<a href="http://cloudrop.jp/cloud/apache_setting" taget="_blank">クラウド環境でのApacheの設定 | cloudrop</a><br />
<a href="http://tokkono.cute.coocan.jp/blog/slow/index.php/wordpress/minify-css-and-javascript-files-for-faster-page/" taget="_blank">ゆっくりと… » WP MinifyでCSS/JavaScriptをまとめて軽量化、ページの応答速度を向上させる</a><br />
<a href="http://httpd.apache.org/docs/2.2/ja/mod/mod_expires.html" taget="_blank">mod_expires &#8211; Apache HTTP サーバ</a><br />
<a href="http://blog.katsuma.tv/2007/07/yslow_apache_mod_expires.html" taget="_blank">YSlow対策でmod_expireを利用してHTTPレスポンスヘッダにExpiresを追加する &#8211; blog.katsuma.tv</a><br />
<a href="http://d.hatena.ne.jp/takami_hiroki/20101112/p1" taget="_blank">Apacheで圧縮してコンテンツ配信しよう &#8211; takami_hirokiの日記</a><br />
<a href="http://www.onflow.jp/cyano/archives/137" taget="_blank">Apache 2.2 mod_filterを使いこなす – AddOutputFilterByType DEFLATE text/htmlを書き換えてみる « cyano</a></p>
]]></content:encoded>
			<wfw:commentRss>http://yusukezzz.net/blog/archives/1996/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php-cgiをFastCGIで動かす</title>
		<link>http://yusukezzz.net/blog/archives/1519</link>
		<comments>http://yusukezzz.net/blog/archives/1519#comments</comments>
		<pubDate>Sat, 22 Aug 2009 06:29:06 +0000</pubDate>
		<dc:creator>yusukezzz</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://yusukezzz.net/blog/?p=1519</guid>
		<description><![CDATA[先日からPHPをCGIとして動かしていますが、せっかくなのでFastCGIの設定までやることにしました FastCGIとは、CGIのプロセスをメモリ上に残しておくことで起動の遅いCGIプロセスを高速に実行出来るようにする [...]]]></description>
			<content:encoded><![CDATA[<p>先日からPHPをCGIとして動かしていますが、せっかくなのでFastCGIの設定までやることにしました<br />
FastCGIとは、CGIのプロセスをメモリ上に残しておくことで起動の遅いCGIプロセスを高速に実行出来るようにするCGIの動作仕様の1つです<br />
<a href="http://ja.wikipedia.org/wiki/FastCGI" target="_blank">FastCGI &#8211; Wikipedia</a></p>
<p>今回は解説サイトに従って簡単に設定出来ました<br />
参考にしたのはこちら<br />
<a href="http://linux.mini13i.gotdns.org/?Apache%2FFastCGI" target="_blank">Apache/FastCGI &#8211; Linux Tips</a><br />
なんとなくfastcgiよりfcgidのほうが良さそうだったのでfcgidを入れました</p>
<p>必要なかった手順もあるので簡単にまとめておきます<br />
Debian lennyの場合</p>
<pre class="brush: bash; title: ; notranslate">
# aptitude install libapache2-mod-fcgid
# a2enmod fcgid
# vim /etc/apache2/sites-available/your-profile
-------------------------------------------------------------
PHPを使用するVirtualHostの設定ごとに以下を追記
&lt;IfModule mod_fcgid.c&gt;
    AddHandler fcgid-script .php
    &lt;Directory &quot;/path-to-your-php-script-dir&quot;&gt;
        FCGIWrapper /usr/bin/php-cgi .php

        Options +ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    &lt;/Directory&gt;
&lt;/IfModule&gt;
-------------------------------------------------------------
# /etc/init.d/apache2 restart
</pre>
<p>ps ax | grep php-cgi<br />
としてプロセスが存在すれば多分有効になっているんじゃなかろうか<br />
＃fcgid入れる前に試してないので良くわからない；</p>
]]></content:encoded>
			<wfw:commentRss>http://yusukezzz.net/blog/archives/1519/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPをCGIモードで動かす</title>
		<link>http://yusukezzz.net/blog/archives/1516</link>
		<comments>http://yusukezzz.net/blog/archives/1516#comments</comments>
		<pubDate>Fri, 21 Aug 2009 17:50:12 +0000</pubDate>
		<dc:creator>yusukezzz</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://yusukezzz.net/blog/archives/1516</guid>
		<description><![CDATA[何でこんなことになったのか… ふとML115のApache2を見ると、それはpreforkだった preforkはシングルスレッドで動作するモードだ マルチスレッドの方がパフォーマンスいいんだからそっちを入れよう！ マル [...]]]></description>
			<content:encoded><![CDATA[<p>何でこんなことになったのか…</p>
<p>ふとML115のApache2を見ると、それはpreforkだった<br />
preforkはシングルスレッドで動作するモードだ<br />
マルチスレッドの方がパフォーマンスいいんだからそっちを入れよう！<br />
マルチスレッドに対応しているのはworkerなのだが、これにmod-phpが対応していないらしく、<br />
workerを入れたらpreforkと一緒にmod-phpが消されてPHPが動かなくなった<br />
かくして、仕方なくphp-cgiの設定をする羽目になったのである<br />
ネットを彷徨っても断片的な設定しかなく、本当に辛かった<br />
とりあえず自分が設定した内容をまとめておく</p>
<p>更新中は500エラーを返すなど、酷いことになっていたかと思います<br />
申し訳ございませんでした</p>
<p>Debian lennyの場合</p>
<pre class="brush: bash; title: ; notranslate">
# aptitude install php5-cgi apache2-mpm-worker
# a2enmod cgid
# a2enmod actions
# vim /etc/apache2/conf.d/php-cgi.conf
--------------------------------------------------------
下記内容で保存
&lt;IfModule modactions.c&gt;
  Action application/x-httpd-php /cgi-bin/php5
&lt;/IfModule&gt;
--------------------------------------------------------

ここまでの作業は
# gunzip /usr/share/doc/php5-cgi/README.Debian.gz
# less /usr/share/doc/php5-cgi/README.Debian
の内容を参照されたし

# vim /etc/apache2/sites-available/your-profile
--------------------------------------------------------
&lt;VirtualHost *80&gt;
～省略～
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
&lt;Directory &quot;/usr/lib/cgi-bin&quot;&gt;
  AllowOverride None
  Options ExecCGI -MultiViews +FollowSymLinks
  Order allow,deny
  Allow from all
&lt;/Directory&gt;
&lt;/VirtualHost&gt;
--------------------------------------------------------
# /etc/init.d/apache2 restart
</pre>
<p>疲れた</p>
]]></content:encoded>
			<wfw:commentRss>http://yusukezzz.net/blog/archives/1516/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>macportsでapache2を入れたらDocumentRootが分からなくて困った</title>
		<link>http://yusukezzz.net/blog/archives/1457</link>
		<comments>http://yusukezzz.net/blog/archives/1457#comments</comments>
		<pubDate>Wed, 22 Jul 2009 05:56:57 +0000</pubDate>
		<dc:creator>yusukezzz</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://yusukezzz.net/blog/archives/1457</guid>
		<description><![CDATA[てっきり /Library/WebServer/Documents だと思ったら全然違った； そもそも設定ファイルが/etcになかった macportsで入れたものは全て/opt以下に入るということを先輩に教えてもらって [...]]]></description>
			<content:encoded><![CDATA[<p>てっきり<br />
/Library/WebServer/Documents<br />
だと思ったら全然違った；<br />
そもそも設定ファイルが/etcになかった<br />
macportsで入れたものは全て/opt以下に入るということを先輩に教えてもらっていたのに、すっかり忘れていた…<br />
macportsだとデフォルトで<br />
ServerRoot &#8220;/opt/local/apache2&#8243;<br />
DocumentRoot &#8220;/opt/local/apache2/htdocs&#8221;<br />
設定ファイルは/opt/local/apache2/conf以下に入ってます</p>
<p>というかLeopardなら最初からapache2入ってたし、そっち使えばよかったかな…</p>
]]></content:encoded>
			<wfw:commentRss>http://yusukezzz.net/blog/archives/1457/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_deflateを用いたApacheパフォーマンスチューニング</title>
		<link>http://yusukezzz.net/blog/archives/1435</link>
		<comments>http://yusukezzz.net/blog/archives/1435#comments</comments>
		<pubDate>Tue, 30 Jun 2009 18:57:01 +0000</pubDate>
		<dc:creator>yusukezzz</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[apache]]></category>

		<guid isPermaLink="false">http://yusukezzz.net/blog/archives/1435</guid>
		<description><![CDATA[＠IT：mod_deflateによるコンテンツの圧縮転送（1/3） こちらを参考に夜な夜な設定してみました まずはmod_deflateを有効にする ＃CentOS5.3でyumから入れたらデフォルトで有効でした そして [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.atmarkit.co.jp/flinux/rensai/apache2_04/apache04a.html" target="_blank">＠IT：mod_deflateによるコンテンツの圧縮転送（1/3）</a></p>
<p>こちらを参考に夜な夜な設定してみました<br />
まずはmod_deflateを有効にする<br />
＃CentOS5.3でyumから入れたらデフォルトで有効でした</p>
<p>そして＜Directory＞ディレクティブなんかで<br />
# deflate enable<br />
SetOutputFilter DEFLATE<br />
# deflate level 1-9<br />
DeflateCompressionLevel 5</p>
<p>の2行を最低書けば有効になります</p>
<p>チェックは<a href="http://www.port80software.com/support/p80tools.asp" target="_blank">Analysis Tools for Your Site</a>から<br />
上段のhttpzipにURLを入れるとチェックできます</p>
<p>圧縮はある程度CPUを消費するので、アクセスの非常に多いサイトで導入すると逆効果になる可能性もあるようです<br />
＃その場合はネットワーク負荷とのトレードオフ</p>
]]></content:encoded>
			<wfw:commentRss>http://yusukezzz.net/blog/archives/1435/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新ドメイン設定完了</title>
		<link>http://yusukezzz.net/blog/archives/1315</link>
		<comments>http://yusukezzz.net/blog/archives/1315#comments</comments>
		<pubDate>Sat, 25 Apr 2009 17:09:30 +0000</pubDate>
		<dc:creator>yusukezzz</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[apache]]></category>

		<guid isPermaLink="false">http://yusukezzz.net/blog/archives/1315</guid>
		<description><![CDATA[リダイレクトの設定が完了しました 新ドメインはhttp://yusukezzz.net/です サブドメイン（blog.yusukezzz.netみたいなの）は設定するかどうしようか悩み中です（かなり面倒くさそう…） 今の [...]]]></description>
			<content:encoded><![CDATA[<p>リダイレクトの設定が完了しました<br />
新ドメインは<a href="http://yusukezzz.net/">http://yusukezzz.net/</a>です<br />
サブドメイン（blog.yusukezzz.netみたいなの）は設定するかどうしようか悩み中です（かなり面倒くさそう…）<br />
今のところドメイン名部分が変わっただけなので表示に問題はないと思いますが、<br />
手入力で直さなければならないところも多少あったと思うので、もしリンク切れがあったら連絡を頂けると助かります</p>
<p>今回のリダイレクトはyusukezzz.dyndns.orgのvirtualhost設定に以下のように書きました</p>
<pre class="brush: plain; title: ; notranslate">
Redirect permanent / http://yusukezzz.net/
</pre>
<p>後はyusukezzz.netのvirtualhost設定を用意（コピーして微修正）すれば完了です</p>
]]></content:encoded>
			<wfw:commentRss>http://yusukezzz.net/blog/archives/1315/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache2環境での簡単ベンチマーク</title>
		<link>http://yusukezzz.net/blog/archives/1299</link>
		<comments>http://yusukezzz.net/blog/archives/1299#comments</comments>
		<pubDate>Sun, 19 Apr 2009 10:51:50 +0000</pubDate>
		<dc:creator>yusukezzz</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[apache]]></category>

		<guid isPermaLink="false">http://yusukezzz.dyndns.org/blog/archives/1299</guid>
		<description><![CDATA[Apache2をインストールすると「ab」というコマンドもセットで付いて来ます （多分他にもユーティリティがあるんでしょうが、詳しくは知らないです；） このコマンドは指定回数HTTPリクエストを発生させて、その処理に掛か [...]]]></description>
			<content:encoded><![CDATA[<p>Apache2をインストールすると「ab」というコマンドもセットで付いて来ます<br />
（多分他にもユーティリティがあるんでしょうが、詳しくは知らないです；）<br />
このコマンドは指定回数HTTPリクエストを発生させて、その処理に掛かった時間を計測してくれるというものです<br />
使い方は簡単で、<br />
$ ab -n 1000 -c 20 http://localhost/action.php?q=hoge<br />
のような感じで使います<br />
-nでリクエスト数、-cで想定する同時アクセス数を指定しています<br />
他にもオプションはありますので調べてみてください</p>
<p>＃ちなみに、Railsのdevelopmentとproductionで同じアクションを計測したところ、<br />
＃素のML115においてproductionは約半分の時間で処理できるようになってました</p>
]]></content:encoded>
			<wfw:commentRss>http://yusukezzz.net/blog/archives/1299/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_rewrite：RewriteMapで柔軟なURL書き換え</title>
		<link>http://yusukezzz.net/blog/archives/935</link>
		<comments>http://yusukezzz.net/blog/archives/935#comments</comments>
		<pubDate>Sat, 24 Jan 2009 16:29:10 +0000</pubDate>
		<dc:creator>yusukezzz</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://yusukezzz.dyndns.org/blog/?p=935</guid>
		<description><![CDATA[今回は旧blogの記事をこのblogの記事にパーマネントリダイレクトしたいと思ったので調べてみました！ しかし、単純にリダイレクトしようと思っても馬鹿やったせいで記事番号がずれており、ドメイン部分を書きえるだけでは済みま [...]]]></description>
			<content:encoded><![CDATA[<p>今回は旧blogの記事をこのblogの記事にパーマネントリダイレクトしたいと思ったので調べてみました！<br />
しかし、単純にリダイレクトしようと思っても馬鹿やったせいで記事番号がずれており、ドメイン部分を書きえるだけでは済みません；<br />
これは大手術が必要そうだ…ということでmod_rewrite、ruby両先生にお願いしました</p>
<p><span id="more-935"></span></p>
<p>mod_rewriteといえば<a href="http://www.net-newbie.com/trans/mod_rewrite.html" taget="blank">リダイレクト業界のスイスアーミーナイフ</a>に例えられる万能モジュールですが、書き換え処理をperl、php、rubyなどのプログラムに任せることも出来ます</p>
<p>まずはURL書き換え用のrubyスクリプトを書きます</p>
<pre class="brush: ruby; title: ; notranslate">
#!/usr/bin/ruby

#入出力をバッファリングさせないため
$stdin.sync = 1
$stdout.sync = 1

#標準入力（記事ID）に14を足して出力
num = $stdin.gets
$stdout.puts num.to_i+14
</pre>
<p>次に書き換え処理を行うプログラムファイルをRewriteMapで指定します<br />
これは.htaccessファイルでは<strong>指定できません！</strong>なのでhttpd.conf（apache2.conf）に直接記述します<br />
[apache]<br />
<IfModule mod_rewrite.c><br />
    RewriteEngine on<br />
    RewriteLock /tmp/map.lock<br />
    RewriteMap test prg:/path/to/faile/rewrite.rb<br />
</IfModule><br />
[/apache]<br />
testというMap名でrewrite.rbを読み込ませます<br />
rewrite.rbの変更を反映させるにはApacheに再読み込みさせる必要があります</p>
<p>これを実際にMapを使いたいディレクトリの.htaccessから、<br />
[apache]<br />
    RewriteEngine on<br />
    RewriteBase /<br />
    RewriteCond %{QUERY_STRING} ^e=([0-9]*)(.*)$<br />
    RewriteRule ^index.php$ http://yusukezzz.dyndns.org/blog/archives/${test:%1|0}? [R=301,L]<br />
[/apache]<br />
${Map定義名:引数|引数のデフォルト値}のような形でMapを呼び出します<br />
今回はRewriteCond %{QUERY_STRING}で記事IDを抽出してそれを渡しています<br />
後は忘れずにR=301でパーマネントリダイレクトであることを指定します</p>
<p>以上、ちょっと大変でしたが無事リダイレクトに成功しました！<br />
後は旧blogで使ってた画像のリンクが切れる場合があるのでsrcを絶対URL指定に変えなくては…</p>
<p>参考サイト<br />
<a href="http://stack-style.org/2003-06-30-01.html" taget="blank">Stack-Style: rubyスクリプトでRewriteMapを書く際の注意点</a></p>
]]></content:encoded>
			<wfw:commentRss>http://yusukezzz.net/blog/archives/935/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ApacheのQUERY_STRINGではまる</title>
		<link>http://yusukezzz.net/blog/archives/889</link>
		<comments>http://yusukezzz.net/blog/archives/889#comments</comments>
		<pubDate>Wed, 07 Jan 2009 17:55:15 +0000</pubDate>
		<dc:creator>yusukezzz</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://yusukezzz.dyndns.org/blog/archives/889</guid>
		<description><![CDATA[久々のURLネタだぜ…もう書かなくていいって思ってたのに； 今回の問題はWEBサーバごとのQUERY_STRING環境変数の挙動の違いです QUERY_STRINGっていうのはURLの?以降の内容を文字列として保存してい [...]]]></description>
			<content:encoded><![CDATA[<p>久々のURLネタだぜ…もう書かなくていいって思ってたのに；<br />
今回の問題はWEBサーバごとのQUERY_STRING環境変数の挙動の違いです<br />
QUERY_STRINGっていうのはURLの?以降の内容を文字列として保存している環境変数で、サーバごとに仕様が異なるのが困り物<br />
Lihttpdではそもそも使えなかったりします<br />
WEBrickでは?以降がなければ中身がnil（未定義？）になります<br />
Apache2では?以降がなくても変数としては存在します<br />
なので、QueryStringのないURLでアクセスすると</p>
<pre class="brush: ruby; title: ; notranslate">
query_str = (request.env['QUERY_STRING'])?('QueryString = ' + request.env['QUERY_STRING']):('QueryString is not exist')
# Apache -&gt; query_str = 'QueryString = '
# WEBrick -&gt; query_str = 'QueryString is not exist'
</pre>
<p>こんな感じの動作になる<br />
今回は中身まで（空かどうか）確認して事なきを得ました</p>
]]></content:encoded>
			<wfw:commentRss>http://yusukezzz.net/blog/archives/889/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>%2FとAllowEncodedSlashes</title>
		<link>http://yusukezzz.net/blog/archives/589</link>
		<comments>http://yusukezzz.net/blog/archives/589#comments</comments>
		<pubDate>Fri, 12 Dec 2008 12:15:34 +0000</pubDate>
		<dc:creator>yusukezzz</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://yusukezzz.dyndns.org/blog/?p=589</guid>
		<description><![CDATA[URLをパラメータとして渡す話の続きです JavaScriptのencodeURIComponent等でエンコードしたURLを渡す場合 Rails側ではてっきり文字列としてわたると思っていたのですが、どうやらApache [...]]]></description>
			<content:encoded><![CDATA[<p>URLをパラメータとして渡す話の続きです<br />
JavaScriptのencodeURIComponent等でエンコードしたURLを渡す場合<br />
Rails側ではてっきり文字列としてわたると思っていたのですが、どうやらApache側の仕様で自動的に%2Fが/にデコードされて伝わるようです<br />
そのため&#8217;/'区切りの通常のURLと認識されてしまい、404エラーが返っていました；<br />
Apacheで%2Fをそのまま渡すには<br />
AllowEncodedSlashes On<br />
という設定を追加します（自分はバーチャルホスト設定のところに書きました）<br />
※対応しているApacheのverは2.0.46以降となっています</p>
]]></content:encoded>
			<wfw:commentRss>http://yusukezzz.net/blog/archives/589/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

