プロが教えるわが家の防犯対策術!

早速ですが、サイトのリニューアルを行い、旧サイトからの
リダイレクト設定を .htaccess で行いました。

旧サイトのディレクトリにはindex.htmlのみを置き、リニューアル
のアナウンスをしています。
それ以外のページへのアクセスをindex.htmlへ誘導したいので
すが、うまくいきません。

下記のコードで一応リダイレクトされるようにはなったのですが、
旧サイト内の別のディレクトリ内にあるindex.htmlがリダイレクト
対象外になってしまっています。
(例) /hoge/index.html  の場合など

除外条件の書き方の問題だともうのですが、緊急を要するため、
ご存知の方がおられたらご指摘いただきたく思い、質問させて
いただきました。

RedirectMatch permanent ^/(((?!index\.html).)*)$ (リダイレクト先URL)

まだ調べ始めたところなので、すぐにわかるようなことでしたら申し訳
無いのですが、時間がないため取り急ぎ質問させていただきました。

どうぞよろしくお願いします。

A 回答 (2件)

方法は2つに1つ。



1.
Not Found 404のアナウンスページでURL1/index.htmlへ導く(リンクを表示する)

2.
リダイレクトしたい場所すべてにダミーのindex.htmlを置いておく。但し、Not Foundには対処出来ない

どちらか選んで下さい。

基本「Not Foundになると、リダイレクト指定は無視」されます。

なので、RedirectMatchで/md/hoge/index.htmlや/mb/foo/index.htmlをリダイレクトしたい場合は、/md/hoge/index.htmlや/mb/foo/index.htmlを「きちんと設置」しないといけません。

>URL1/mbにindex.htmlだけを残しており、URL1/mb以下へのアクセスをすべてindex.htmlへまず誘導したいのです。

Not Found のアナウンスページで、URL1/index.htmlへ誘導する事は可能ですが、URL1/mb/index.htmlへ誘導する事は不可能。

と言うか、URL1/mb/index.htmlに誘導したって構わないけど、URL1/*やURL1/etc/*で未検出したのもすべてURL1/mb/index.htmlに誘導されちゃうから、困った事になる。

>index.htmlがアナウンスページになっているので、一旦表示させたいのですが、やはり無理なのでしょうか?

諦めてURL1/index.htmlに誘導するか、全部の場所にダミーのindex.htmlを置いてリダイレクトするしかない。

普通、/配下と/mb/配下で別ページを運用する場合は、サブドメインを作ってエリアスさせるのが普通。

例えば

http://www.hogehoge.co.jp/index.html ⇒ /user/local/htdocs/index.htmlにアクセス(ルートは/index.html)
http://www.mb.hogehoge.co.jp/index.html ⇒ /user/local/htdocs/mb/index.htmlにアクセス(ルートは/index.html)

とかって設定をします。
    • good
    • 0
この回答へのお礼

ありがとうございます。
やはり無理がありますね…

>全部の場所にダミーのindex.htmlを置いてリダイレクトするしかない。

としたところで、存在しないdir/index.htmlってされるとnotfoundになりますし。。。
最低あったものだけ救うという手しかないですね。

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

お礼日時:2012/07/25 19:25

そういう場合は、/index.htmlにのみリダイレクトを設け、他の旧ページはすべて削除。



んで、404 Not foundの警告出力を「/index.htmlに誘導するリンク」にする。

存在しないページを開こうとしたら404が出て、404にあるリンクをクリックしたら/index.htmlに飛んで、/index.tmlに飛んだら移転先にリダイレクトすれば良い。

旧ページにあった画像とかを直リンされたら、どうやってリダイレクトさせるつもりなのかな?

まさか、旧ページで使ってた画像全部、リダイレクト設定するつもり?

なので、トップ以外の個々のページにリダイレクトを置くのは無意味。やるだけ無駄。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます!

説明が悪くて申し訳ありませんが、サイトをリニューアルと言っても、もとのサイトの一部を別サイトとしてリニューアルしたものなので、教えていただいた方法が取れません。

もともと URL1/mb で携帯サイトを展開していたのですが、移設してURL2で運用始めました。

従って、URL1の残りはそのまま稼働しています。
URL1/mbにindex.htmlだけを残しており、URL1/mb以下へのアクセスをすべてindex.htmlへまず誘導したいのです。

index.htmlがアナウンスページになっているので、一旦表示させたいのですが、やはり無理なのでしょうか?

お礼日時:2012/07/25 01:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!