* URLを変更せずにファイル単位でリダイレクトする
May 26 2014
サークルの後輩にファイルを共有する際、自分のサイトにファイルを置いてURLを教えていたのですが、
ファイルの置き場所を変えたくなっちゃったので.htaccess
を利用してやってみた。
/hoge/
をファイル公開ディレクトリとする。(http://sota1235.net/files/*.zip
で/hoge/*.zip
にアクセスできる。)
- 元のファイルの置き場所:
/hoge/*.zip
- 新しい置き場所:
/hoge/fuga/*.zip
.htaccess
ファイルの置き場所はファイル公開ディレクトリでよい。
なにはともあれ書いてみる
最初、以下のように記述してみた。
Redirect /hoge/ http://example.ne.jp/files/fuga/
こうすることで/hoge/ディレクトリへのアクセスをhttp://example.ne.jp/files/fuga/にリダイレクトするという意味になる
そして試しにアクセスすると無限ループした(´・ω・`)
こんな感じになってるらしい (参考: ミケネコ研究所)
ブラウザの要求: http://example.ne.jp/hoge/
サーバの返答 : http://example.ne.jp/files/fuga/ リダイレクトせよ
ブラウザの要求: http://example.ne.jp/files/fuga/
サーバの返答 : http://example.ne.jp/files/fuga/fuga/ リダイレクトせよ
ブラウザの要求: http://example.ne.jp/files/fuga/fuga/
サーバの返答 : http://example.ne.jp/files/fuga/fuga/fuga リダイレクトせよ
ブラウザの要求: http://example.ne.jp/files/fuga/fuga/fuga
なるほど。
正しく(というより自分の場合の解決策)はこういう風に書けばよい。
Redirect 301 /hoge/*.zip http://example.ne.jp/fuga/*.zip
これで/hoge/*.zipにマッチするファイルへのアクセスをhttp://example.ne.jp/files/fuga/*.zipにリダイレクトするという意味になる。
301はMoved Permanently
、ざっくり言うとコンテンツの移動を意味するHTTPステータスコードですね。
これで後輩に修正URLを布教することなくファイル移動を行えましたとさ〜
※この記事は WordPress に投稿した記事を変換したものです。一部不自然な表示があるかも知れません。ご了承ください。また、記事タイトル先頭の * は WordPress から移行した記事である印です。