htaccessリダイレクト


お世話になっています。

RewriteEngine on
Redirect permanent http://example.com/work/ http://blog.example.com/work/

http://example.com/work/にアクセスがあった場合
http://blog.example.com/work/にリダイレクトする
ができません。

/home/~/とフルパスで指定してもできませんでした。

work/ディレクトリはないのですがリダイレクトに影響するのでしょうか?

htacessの利用はできるので、正しい書き方をご教授御願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/02/18 16:24:53
  • 終了:2013/02/21 16:52:02

ベストアンサー

id:rouge_2008 No.1

rouge_2008回答回数594ベストアンサー獲得回数3512013/02/19 11:24:16

「Redirect」ディレクティブは、mod_aliasの機能ですので、「RewriteEngine on」は必要ありません。
何かの機能を試してみて思ったように動作しなかった場合は、公式のドキュメントを確認するようにするといいです。

http://httpd.apache.org/docs/2.2/mod/mod_alias.html

Redirect ディレクティブ

説明: クライアントが違う URL を取得するように外部へのリダイレクトを 送る
構文: Redirect [status] URL-path URL
コンテキスト: サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き: FileInfo
ステータス: Base
モジュール: mod_alias

Redirect ディレクティブは古い URL を新しいものへマップして、 クライアントに新しい場所を訪れるように指し示します。

古い URL-path (% が復号された) パスは、 スラッシュで始まるものです。相対パスは使用できません。 新しい URL は絶対 URL 、つまりスキームとホスト名で 始まるものであるべきですが、URL-path の、スラッシュで始まるものも 使用可能です。その場合は、現在のスキームとホスト名が追加されたことに なります。

URL-Path で始まるどんなリクエストも、ターゲットの URL へとリダイレクトが返されます。URL-Path にマッチした path 情報は、ターゲット URL の後ろに追加された 形で引き継がれます。

Redirect /service http://foo2.example.com/service

クライアントは http://example.com/service/foo.txt へのリクエストを行なうと、代わりに http://foo2.example.com/service/foo.txt をアクセスするように告げられます。 パスセグメントが完全に一致したもののみがマッチしますので、 上記の例は http://example.com/servicefoo.txt にはマッチしません。 正規表現を使ったより複雑なマッチングについては、 RedirectMatch ディレクティブをご覧ください。


「古い URL-path (% が復号された) パスは、 スラッシュで始まるものです。」とありますので、リダイレクト元はスキームとホスト名は不要です。

Redirect permanent /work http://blog.example.com/work



※他、status引数の説明については、参照URLを確認してください。

他13件のコメントを見る
id:rouge_2008

「Redirect permanent /work ~」の記述のみの.htaccessの有無で、ループが発生したり・しなかったりというのは、やはり不可思議な動作です。
何個か上でコメントしましたが、リダイレクト元・リダイレクト先ともにアプリケーションを使用しない(※通常のHTML・画像・フォルダ等で構成された)サイトで、正常に動作するか確認してみましたか?

この質問を見ている人はもういないと思いますので、今回の確認環境での動作状態の他に、上記通常のサイトでの動作確認結果、サーバー環境(※レンタルサーバー名およびプラン、またはローカルならWEBサーバーアプリケーション名とバージョンおよび有効にしているモジュール情報等)、サイトのディレクトリ構成(※「example.com」の形式で大丈夫なのでドメインの割り当て状況も・・・)、その他動作状況理解の助けになりそうな情報をなるべく詳細に付け加えて質問し直す方がいいように思います。

2013/02/21 00:40:43
id:rouge_2008

解決済みの新しい質問【ロリポップでWordPressで特定のコマンドを表示させようとすると403Error】でWAF機能が原因の問題が発生していたようですが、この質問のサイトもロリポップでしょうか?
もしロリポップなのでしたら、WAF機能をオフにして動作を確認してみてください。
※ログの確認ができるようですので、ユーザー専用ページで検知・防御ログの確認も行ってみてください。

http://lolipop.jp/waf/

攻撃パターンの定義ファイルは自動でアップデートされるので、操作を行っていただかなくても、最新の攻撃パターンをブロックすることが可能です。
また、ロリポップ!ユーザー専用ページからクリックひとつで、検知・防御ログの確認ができます。


http://lolipop.jp/support/faq/service/000679/

また、下記の点にご注意ください。

  • Apacheのmod_rewriteを利用すると挙動が変わる可能性があります。
  • CGI、PHPプログラムの動作に影響が出る可能性があります。
  • 遮断した接続には403エラー(Forbidden)が表示されます。
  • 遮断した接続を自動で復旧させることはできません。
  • 特定のアクセスのみを遮断することはできません。
  • ウイルス(Gumblar等)は検知できません。


「Apacheのmod_rewriteを利用すると挙動が変わる可能性があります。」とありますので、mod_aliasの「Redirect」ディレクティブのみ使用した場合でも影響があるのかもしれません。

2013/02/21 10:49:22

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません