人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Apacheのhttpd.confの設定について質問です。
今したい事は以下になります。

http://test.ne.jp/ でアクセスが来たら http://test.ne.jp/hp/index.html にリダイレクト
http://test.ne.jp/aaahp/ でアクセスが来たら http://test.ne.jp/aaahp/ にリダイレクト

とりあえず、/でアクセスが来たら、http://test.ne.jp/hp/index.html に行くように下記の設定を試しましたが、
Redirect permanent / http://test.ne.jp/hp/index.html
これだと/aaahp/←この2つのスラッシュにも適応され、はちゃめちゃなURLになってしまいました。

今考えているのは、
/で来た場合、/にindex.htmlを保管するように設定し、
/apache2/htdocs/内にindex.htmlを設置、そのindex.html内で <META HTTP-EQUIV="Refresh"...略 を使いリダイレクトするという方法です。

ただ、この場合も、/で来た場合にindex.htmlを保管するという方法が分からないのでそれも調べています。

●質問者: ピ
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Apache HTML HTTP httpd INDEX
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Committeeman
●60ポイント

http://httpd.apache.org/docs/2.0/ja/mod/mod_alias.html

処理の順番

様々なコンテキスト中での Alias や Redirect は他のディレクティブと同じように標準の マージ規則 に従って処理されます。ただし、(例えば <VirtualHost> セクションの中のように) 複数の Alias や Redirect が同じコンテキスト中に現れた場合は決まった順番で処理されます。

まず、Alias の前にすべての Redirect が処理されます。ですから、Redirect か RedirectMatch にマッチするリクエストには Alias は決して適用されません。次に、Alias と Redirect が設定ファイル中の順番に適用され、最初にマッチしたものが優先されます。

ですから、二つ以上のディレクティブが同じパスに適用されるときは、すべてのディレクティブの効果を得るためにはより詳しいパスを先に書く必要があります。例えば、次の設定は期待通りの動作をします:

Redirect /aaahp http://test.ne.jp/aaahp/ 
Redirect permanent / http://test.ne.jp/hp/index.html

引っ越したという返事を加える必要がある場合のみ permanent をつけておくので実際には引越しをしていないaaahpにはつけていない

◎質問者からの返答

なるほど、AliasとRedirectの優先順位など勉強になりました。

ありがとうございました。


2 ● Y.Namikawa / id:rx7
●100ポイント

2つ目の/aaahp/の部分は、リダイレクトせずそのままのように見受けられるので、

1つ目の条件のみを満たす場合は、


RedirectMatch ^/$ http://test.ne.jp/hp/index.html


こんな感じでしょうか。"/"だけがついているアドレスのみ適用されます。

◎質問者からの返答

回答頂いた内容で解決致しました。

ありがとうございます。


3 ● studiocherry
●70ポイント

httpd.conf で、設定してもいいのであれば、mod_rewrite の方が、柔軟性がありそうですね。


http://test.ne.jp/ -> http://test.ne.jp/hp/index.html

(test.ne.jp って存在しているので、 例示用の example.jp を使いますね。)

上記だと httpd.conf に

RewriteRule ^/ /hp/index.html [L]

だけで、大丈夫ですね。

^ は、先頭という意味です。

[L] は、一致したら これ以上 URLを書き換えしないというフラグです。


詳しくは、マニュアルを...

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

◎質問者からの返答

とりあえず、

RewriteRule ^/ /hp/index.html [L]

このままではうまくいきませんでした。

mod_rewriteをもっと勉強してみます。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ