S-Bot

Entry

ルートパスで制作したサイトの確認方法。

DATE:07-12-05 Category:Web

はてなブックマークに追加 del.icio.usに追加 livedoorクリップに追加 Yahoo!ブックマークに登録


きょうは久々の技術ネタです。 よくWebサイトを作る時にルートパス(/から始まるパス)を多用することがあります。

こんな時に問題になるのがテスト用のディレクトリ、例えば /test以下に展開するなどした場合です。 デモ専用のサーバもしくは、バーチャルドメインが用意できればいいですけど、無理な場合は結構困ります。ルートだと戻りすぎちゃいますからね。

で、いろいろ調べたんですけど、.htaccessでリサイレクトさせて解決出来ました。

前提として、http://s-bot.net/demosite/に、ルートパスで制作したWebサイトを展開する場合の記述です。

Options +FollowSymLinks RewriteEngine on RewriteBase / #指定のディレクトリ以下からのリクエストのみに設定 RewriteCond %{HTTP_REFERER} http://s-bot.net/demosite/(.*)$ #実際のリダイレクト先 RewriteRule (.*) /demosite/$1 [R,L]

これを、ルートの.htaccessに書き込みます。

RewriteCondで、リダイレクトをする条件を指定します。この条件を満たさないと、リダイレクトは行われません。 この場合条件は、http://s-bot.net/demosite/からのリファラーのみの場合、という条件です。

条件が満たされた場合は、/demosite/にリダイレクトさせます。これはリンクだけでなく画像の参照なども対象です。

demosite以下からのリクエストはすべて、ルートであってもdemosite内を参照するように変換するイメージです。

うちのサーバー(CPI)ではさらに、demosite/に.htaccessを用意して以下を書き込まないとエラーになりました。

Options +FollowSymLinks RewriteEngine on

これでルートパスで作っているサイトを、一階層下にアップする場合もソースを変える事なくテスト駆動ができるようになります。

ただ、あまり詳しくない僕が調べて適当に書いたので、もっといい方法や誤作動する場合が有るかもしれません。 何かご存知の方は教えてください。

Comment 0

コメントする(アルファベットのみのコメントは投稿できません。)

trackback

このブログ記事に対するトラックバックURL:
http://s-bot.net/MT/mt-tb.cgi/162


▲PageTop