• ベストアンサー

htaccessを使ってトップページ以外のアクセスを全てトップページへリダイレクトしたいです

急遽、今日の今日、サイトを準備中表示にしなければならなくなりました。 よって、htaccessを使ってトップページ以外へのアクセスを全てトップページへリダイレクトしたいのですが、htaccessファイルの中身はどのように記述するのでしょうか? 知識が全くなく、検索調べもしておるのですが、別のノウハウは見かけますがズバリがなかなか見当たらない状況です。 なお、ページが沢山あるので各ページをひとつひとつリダイレクトリストに入れていくのは無理です。「ALL」のような指示で済ませたく思っております。 今日の今日で申し訳ありませんが、ご存知の方いらっしゃいましたら宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.5

いっそ、アクセス制限をかけて、エラーをリダイレクトしてみるというのはどうでしょう? deny from all ErrorDocument 403 /index.html という感じで試してみては?

sweetrev
質問者

お礼

ありがとうございます! トップページだけが問題になるだろうなと思いながらも早速試しました! やはりトップページまで表示されないです・・・お、惜しい・・・・・ このソースはまさしく「all」という記述で「全てのURL」という機能を 持たせてあると思いますが、これに加えて「ただし、トップページ以外」 という記述のさせ方がないものでしょうか。

その他の回答 (6)

  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.7

Order deny,allow deny from all ErrorDocument 403 /index.html <Files index.html> Allow from all </Files> こんなんは?

参考URL:
http://httpd.apache.org/docs/2.0/ja/sections.html
  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.6

自分で調べようとしてる? http://www.shtml.jp/htaccess/redirect.html で私が言った部分に「パターンマッチ」「正規表現」という言葉があるけど、どういう意味かわかってる? htaccessで正規表現がどのように使われているか、検索しな。特定のファイルに対して行う方法が出てくるから。

sweetrev
質問者

お礼

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.4

hm. ところで、http://www.shtml.jp/htaccess/redirect.htmlに書かれていることは全て試したのかな? ずずずいっと下にスクロールすると「RedirectMatch」が紹介されているよね。 これだけだとちょっとわかりにくいけど、そのままGoogle先生に聞けば…… http://www.ksknet.net/apache/url.html #すべてのリクエストをリダイレクトします。

sweetrev
質問者

お礼

この方法はトップページにリダイレクトされた時もまたリダイレクトが発生すと思います。なので無限ループになっちゃいます。 再度投稿いただきありがとうございました。それも近い情報だったので参考になりました。

  • jet-masa
  • ベストアンサー率33% (55/162)
回答No.3

試した事は無いですけど。 http://www.shtml.jp/htaccess/redirect.html もしくは、ファイル一括変換でメタタグを挿入かな。メタタグでのリフレッシュは携帯向けには使用できませんが・・・。

sweetrev
質問者

お礼

ご案内のページですが、No.1さんの補足に書きましたように、そうなんです私もやってみたんです。しかし、うまくいったとしてもこれではダメでした。何故ならば、例えば以下のようなパーマネントを.httaccessに記述するとします。 Redirect permanent /pdt/ http://www.abcdefg.com/ そうしますと、「pdt/info.html」というページをブックマークしている人がダイレクトにアクセスしてきたら、リダイレクト先はドメイン直下のinfo.html、つまり、 http://www.abcdefg.com/info.html という、「単にディレクトリの部分だけを引っこ抜いただけのURL、だから存在しないURL」にリダイレクトされてしまうので、存在しないURLにジャンプばかりしてしまうことになり、これではFile No Foundの嵐です(^_^;) 実際に作って存在するページのどのページにアクセスされても、全てトップページにリダイレクトしたいだけなので、「全てのページをトップページへリダイレクトする」という記述方法があれば、それ一発で済みそうに思うのですが・・・・・。 トップページ以外削除して、無いページにアクセスあったらトップページにリダイレクトする方法もありますが、経験上と先行きを考えると、まだサイトにアップしている全てのファイルはそのまま存在させておかなければなりません。 「ALL」を表す記述方法でもあればなぁ・・・と思っているのですが・・・・・。 例えば、 Redirect permanent /all/ http://www.abcdefg.com/ とかですね。 ※モチロン、これでは単に「all」というディレクトリを指定してしまうだけのものになってしまって機能しませんが・・・・・ リフレッシュについてはNo.1さんと同じご回答なので、同様に使うことができないです。 有難うございました。

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.2

ファイルを全部削除(退避)して、404をTOPにつなげれば良いのではないでしょうか。 http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/redirect.html http://www.shtml.jp/htaccess/404.html

sweetrev
質問者

お礼

済みません、私からの情報が足らなかったです。 ファイルを削除して404をトップへリダイレクトする方法は出来ないんです。 削除したことによる経験上のトラブル想像と、すぐ復活しないとも限らない本件の不透明な先行きを考えると、まだサイトにアップしている全てのファイルはそのまま存在させておかなければならないんです。全てのファイル名をちょっといじる手もありますが、ディレクトリ・ファイルともにメチャクチャ多いのでちょっと難しいです。 実際に作って存在するページのどのページにアクセスされても全てトップページにリダイレクトしたいだけなので、「全てのページをトップページへリダイレクトする」という記述方法があれば、それ一発で済みそうに思うのですが・・・・・。 「ALL」を表す記述方法でもあればなぁ・・・と思っているのですが・・・・・。 例えば、 「Redirect permanent /all/ ​http://www.abcdefg.com/​」 とかですね。 ※モチロン、これでは単に「all」というディレクトリを指定してしまうだけのものになってしまって機能しませんが・・・・・ 投稿ありがとうございました

sweetrev
質問者

補足

済みません、お礼欄の.httaccessの記述部分が何故か文字化けしておりました。 Redirect permanent /all/ ​http://www.abcdefg.com/ が正しいです。 アレ? やっぱり確認画面みたらまだ文字化けしますね・・・・・ 何でだろう? No.3さんのお礼欄には化けずに投稿できたんですが・・・ コピペしてやってるんですけどねぇ・・・・ 仕方ないのでNo.3さんへのお礼欄をご参照ください(^_^;)

  • raynya
  • ベストアンサー率36% (105/290)
回答No.1

JavaScriptじゃダメでしょうか? 「リダイレクト JavaScript」で検索するとサンプルがいろいろ見つかるんですが…

sweetrev
質問者

お礼

JavaScriptは残念ながらダメでだと思うんです。OFFにしているユーザーが沢山いますので・・・・ また、Refreshもページ分やらないといけないので恐ろしいことになります(^_^;) 投稿いただきありがとうございました。

sweetrev
質問者

補足

それからちなみに、以下のURLで、 http://www.shtml.jp/htaccess/redirect.html 「Redirect permanent /test/ http://www.shtml.jp/htaccess/」 とするとできるとあるのですが、ダメでした・・・・・ 存在するディレクトリ内のページが表示されなくはなるんですが、 「500 Internal Server Error」のページが出て、リダイレクトをしてくれないんです。何でだろう・・・・

関連するQ&A

  • .htaccessでリダイレクト

    サイトのディレクトリ構造やファイル名を変えたため、 外部からのリンクが切れてしまっています。 .htaccessを設置したディレクトリ以下で ファイルが見つからない場合、TOPページにリダイレクト、 という動作を実現するにはどう記述すれば良いのでしょうか。 TOPページを http://www.hoge.com/ とすると、 とりあえず思いつくのは ErrorDocument 404 / なのですが、404エラーをエラー表示以外の リダイレクトに使うのが正しいのか分かりません。 こういう目的のリダイレクトの書式もあるのでしょうか。 よろしくお願いします。

  • .htaccessによりリダイレクトされるサイトの一部だけリダイレクト

    .htaccessによりリダイレクトされるサイトの一部だけリダイレクトされないようにできませんか? ドキュメントルートhome/直下の.htaccessには、下記の記述がされています。 RewriteEngine on RewriteRule .html$ http://www.sample.com/index.php ↑これは、拡張子が.htmlのページを表示しようとしたらwww.sample.com/index.php(TOPページ)へリダイレクトさせるという意味かと思うのですが、 home/webalizer 直下には、自動的に○○○.htmlファイルが生成されるようになっており、 このファイルを開こうとしても、TOPページにリダイレクトされてしまい、 FTP等でダウンロードしてからでないと内容を確認できません。 ルート直下の.htaccess は手を加えたくないので、 home/webalizer直下に、何らかの記述の.htaccessファイルを置くことにより、webalizer内の.htmlファイルだけはリダイレクトせずに開けるようにできないものでしょうか?

    • ベストアンサー
    • PHP
  • .htaccessリダイレクト

    .htaccessリダイレクト 別ドメインにリダイレクトさせるための方法が分からないので、質問させてください。 現在http://www.aaaaa.jp/aaa/bld_list.phpにアクセスしたときに http://www.bbbbb.jp/bbbにリダイレクトさせようとしています。 googleで「別ドメイン .htaccess リダイレクト」など色々検索してみたのですが、 なかなか出て来なく、困っています。 どなたかアドバイスいただけないでしょうか?

  • .htaccessのリダイレクトができない

    .htaccessに「Redirect *** ***」という記述をして、 ほかのページにリダイレクトさせようとしています。 しかし、どうしてもうまくいきません。 .htaccessに「DirectoryIndex」などほかの記述をしたところ、 うまく動作しているのでApacheの設定には問題がないと思います。 http://www.shtml.jp/htaccess/redirect.html このページとまったく同じように設定したのですが、 (もちろんパス名は違いますけど) 何かうまく動かない原因は考えられるでしょうか? よろしくお願いいたします。

  • htaccessでリダイレクト&告知ページ

    htaccessでリダイレクトしたいのですが、トップページだけ告知ページを何秒間か表示させたいと思っています。 metaタグだと「302(一時移転)」を返すようなのですが、 htaccessを使用して、告知ページを介して移転先URLへ誘導することは出来るでしょうか?あわせて「301(永久移転)」を返す仕様にしたいです。 可能かどうか、教えてください。

  • リダイレクトの設定について httpd.conf .htaccess

    リダイレクトに関して質問させていただきます。 今回、WEBサイトを閉鎖するにあたり、現在のサイトにアクセスした場合(全てのディレクトリ)、一度インデックスページにリダイレクトさせ、そのページにサイト閉鎖の案内を出そうと思っています。 リダイレクトさせるため、.htaccessに下記の記述をしたのですが、サイトのインデックスのページ(index.html)にアクセスすると、ループ状態になってしまいます。 【記述内容】 Redirect permanent / http://xxx.co.jp/index.html http.confも変更・修正ができますので、どういう記述をすれば、ループに陥ることなくスムーズなリダイレクトができるかご教授ください。

  • htaccessでリダイレクト

    http://www.○○○/index.php?s=sample というアドレスを http://www.◆◆◆/ にリダイレクトしたいと思っています。 htaccessに下記のように記述しました。 RedirectPermanent /index.php?s=sample http://www.◆◆◆ が、リダイレクトしませんでした。 次に下記のように記述してみました。 RewriteEngine on RewriteRule ^([0-9A-Za-z_]+)/$ index.php?s=$1 [L] RedirectPermanent /sample/ http://www.◆◆◆ すると、 http://www.○○○/index.php?s=sample にアクセスすると、リダイレクトはしますが、 リダイレクト先のアドレスが、 http://www.◆◆◆s=sample となり、引数が残ってしまいます。 原因もわからず、どのようにしたらいいかが全くわかりません。 どなかたお教えください。

    • ベストアンサー
    • PHP
  • .htaccessでのリダイレクト

    .htaccessのリダイレクトで困っています。 .htaccessのリダイレクトが不得手なのでお聞きしたいのですが、 PC用のWEBデータが「/pc/」ディレクトリに入っています。 スマホ用のWEBデータが「/sp/」ディレクトリに入っています。 WEBのルート「/」には何も入っていないのでアクセスがあった場合は、PCの場合は「/pc/」に、スマホの場合は「/sp/」に移動させたいです。 でも、スマホから「/pc/」にアクセスがあった場合は、「/sp/」に移動はさせたいのですが、PCから「/sp/」にアクセスがあった場合はそのまま表示したいです。 さらに、例えば「/pc/access.html」にスマホからアクセスがあった場合は、「/sp/access.html」を表示させたいです。PCとスマホで対応するファイルは全て存在します。 そのような場合の.htaccessの記述方法はどのようになるのでしょうか? ご存じの方がいましたらよろしくお願いします。

  • htaccessのリダイレクト(php→html)

    .phpで運用していたウェブページの拡張子を、.htmlに変更したのですが、 .phpにアクセスがあった場合、.htmlにリダイレクトするように htaccessを設定したいと思っています。 htaccessに、 RedirectPermanent http://user-domain/hogehoge.php http://user-domain/hogehoge.html と書けばリダイレクトされるとは思うのですが、 ページ数が少し多いサイトですので、1ページ1ページ書かずにできる方法を ご存知の方がいれば、教えて頂けないかと思いこちらに投稿しました。 どなたかお知恵を貸していただけませんか?? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • htaccessで同一サーバ内リダイレクト処理

    LAMP環境にてウェブページの作成を行っております。 htaccessは使用できる環境になっておりまして、こちらを使用してリダイレクト処理を行いたいと思っております。以下のようなリダイレクトです。 http://www.hoge.jp/fuga ↓ http://www.hoge.jp/redirect/index.html このような形のリダイレクトを行うため、以下のような記述をhtaccessに記述しました。 Redirect temp http://www.hoge.jp/fuga/ http://www.hoge.jp/redirect/index.html すると、リダイレクト先のURLが http://www.hoge.jp/redirect/redirect/redirect/・・・/index.html ridirectがループしてしまい、正しいURLにリダイレクトすることができません。 リダイレクトを解消するためのhtaccessの設定方法など分かりましたら、 ご教授いただけますでしょうか。 よろしくお願い致します。