オンラインRPGのプレイ日記や攻略メインのブログです。稀にWeb製作記事も更新。

2016年12月7日 レイドボス:コアの鍵開け条件と有効デバフを更新しました。

htaccessでサブディレクトリをリダイレクトさせない方法

2013年6月10日 【Web製作メモ

Cyclist Rorschach Test

ちょっと特殊な内容について書いてみようと思います。
htaccessとはサーバーの設定やルールみたいなもので、詳しい説明はめんどいので省いちゃいましょう!

レンタルサーバーや独自ドメインを使用している人は年々減りつつありますが、長年運営を続けているとどうしてもサーバー移転やURLの変更が必要になる場面がでてきます。

そこで使用するのがこれ「.htaccess」

リダイレクトの基本おさらい

リダイレクトはとても簡単に設定することができます。
例えば現ドメインからnewdomain.comに移転したい場合。
リダクレクトにはいくつかの種類がありますが、どれが正解でしょうか?

Redirect / http://newdomain.com/
Redirect 301 / http://newdomain.com/
Redirect 302 / http://newdomain.com/
Redirect 303 / http://newdomain.com/
Redirect permanent / http://newdomain.com/
Redirect temp / http://newdomain.com/
Redirect seeother / http://newdomain.com/

リダイレクトパラメータの説明

パラメータ 効果
なし Redirect以降を省いた場合は302と同じになってしまい、「一時的な移動」となるので気をつけましょう。
301 301は「永続的な移動」という意味を持っていますので基本的には301を使います。ただし302と打ち間違えても気づきにくいのでpermanentを使用する人が多いです。
302 省いた場合と同じで「一時的な移動」となります。どういうときに使うかというと、なんらかの事情で今のサーバーを使えない場合などに。
303 303は「別のものに置き換える」意味を持っています。移転するついでに内容もちょっと変えちゃったから、これで代用しておくれというときに使います。
permanent 「永続的な移動」を意味していて301と全く同じ効果を持ちます。基本的にはこれを使いましょう。
temp 言葉通りの意味で302と同じく「一時的な移動」となってしまいます。
seeother 303と同じ効果で、意味そのままSee otherです。

サブディレクトリをリダイレクトさせない方法

上の方法でアクセスを全てnewdomain.comへとそっくりそのまま移すことができますが、困ることがいくつかあります。

「サブディレクトリは移転させたくない時はどうするの?」
「特定のファイルだけリダイレクトさせたくない時はどうするの?」

リダイレクトする方法は検索すればいくらでもでてきますが、リダイレクトさせない方法はなかなか見つかりません。

正規表現という単語を知っていればすぐに見つかるのですが、単語そのものが思いつかない場合は検索が役に立たなくなるんですよね。

僕のように同じワードで来る人もいるかもしれないので記事にしてみます。

正規表現を使う

ドメインを移転するついでにディレクトリ構成も変えてしまう場合は上に記述した簡単なリダイレクト設定はできません。トップディレクトリで指定すると、それ以下もすべて反映してしまうからです。

例) トップディレクトリだけを移転させる方法
RedirectMatch 301 ^/$ http://newdomain.com/
※注意点
  1. ^はURLの始まりを表し、$はURLの終わりを現しています。この場合はトップディレクトリだけになります。


失敗例) 完全に条件を指定していない
RedirectMatch 301 /pepepe/$ http://newdomain.com/pepepe.html
RedirectMatch 301 /popopo/pepepe/$ http://newdomain.com/popopo.html
RedirectMatch 301 /pipipi/popopo/pepepe/$ http://newdomain.com/pipipi.html
※注意点
  1. 一見すると大丈夫に見えますが、1行目は/pepepe/で終わるURLであれば全てリダイレクトしてしまうので2・3行目と噛み合ってしまいリダイレクト先がうまく動いてくれません。
  2. ^で始まり$でしっかりと終わるようにしましょう。

一番簡単な解決方法は、リダイレクト先のドメインでも全く同じディレクトリ構造にすることです。

しかしそれぞれのディレクトリやファイルを別々の場所に移動させる必要がある場合は面倒でもリダイレクトマッチを使用しましょう。

記事に対してコメントする

投稿ルール
  • 記事内容に関することであれば特に制限はありません。
  • コメントに画像を添付することも可能です。補足説明として使いたいときなど。
  • 投稿ボタンを押すとすぐにページ反映されます。
    (URLを含むコメントは安全性確保のためストックに保留されます。)

名前 (Name) ※無記名にすると「匿名さん」になります

内容 (Contents)

10MB以下のJPG/GIF/PNG形式の画像をアップロードできます。

  1. ホーム
  2. 雑記
  3. Web製作メモ
  4. htaccessでサブディレクトリをリダイレクトさせない方法
サイトに関するご要望や意見はこちらから

htaccessでサブディレクトリをリダイレクトさせない方法

2013年6月10日 20:00

タグ:

▲ページの先頭へ戻る