• 締切済み

htaccessにてディレクトリ以下を転送する場合

.htaccessにてディレクトリ以下をそのディレクトリ下にある特定ファイルに転送する場合 どういう書き方をすればよいのでしょうか? *dlディレクトリ以下にアクセスした場合、/dl/failed.htmlに転送したい。 Redirect permanent /dl/ /dl/failed.html とした場合、ループになります。(当たり前ですが)

みんなの回答

  • dscripty
  • ベストアンサー率51% (166/325)
回答No.1

↓のページの Redirect Directive の説明を読むとわかると思うけど、 mod_alias - Apache HTTP Server http://httpd.apache.org/docs/2.2/en/mod/mod_alias.html#Redirect http://httpd.apache.org/docs/2.2/ja/mod/mod_alias.html#Redirect (日本語訳はまだ完成してないのかな?) Redirect の機能を誤解してる気がする。 | Redirect permanent /dl/ /dl/failed.html と書いた場合、 http://example.com/dl/somedir/index.html ↑へのリクエストは、↓には転送されないよ。 http://example.com/dl/failed.html 実際に転送される先は、↓こっち。 http://example.com/dl/failed.html/somedir/index.html 結局ループするから同じだけどね。 RedirectMatch Directive を使えばできると思うけど、 http://httpd.apache.org/docs/2.2/en/mod/mod_alias.html#RedirectMatch http://httpd.apache.org/docs/2.2/ja/mod/mod_alias.html#RedirectMatch 実用上、質問のようなディレクトリ構成が必要なことってないとおもう。 /failed.html にリダイレクト先のファイルを置いて、 /dl/ ディレクトリ以下にアクセスしてきたときに、 /failed.html にリダイレクトさせれば、 ループのことを考える必要ないし簡単だし素直かな? 上のようなディレクトリ構成なら↓(テストしてないから間違ってるかも) RedirectMatch permanent /dl/.* http://example.com/failed.html でも、こういった、ある特定のフォルダにアクセスされたくないときは、permanent(301 ステータス) は使わないし、 http://ja.wikipedia.org/wiki/HTTP%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89 Redirect も使ったりしないよ? もしするなら <FilesMatch> Directive を使って、 http://httpd.apache.org/docs/2.2/en/mod/core.html#filesmatch http://httpd.apache.org/docs/2.2/ja/mod/core.html#filesmatch /dl/.htaccess に↓(テストしてないから間違ってるかも) ErrorDocument 403 /failed.html <FilesMatch *> Order allow,deny Deny from all </FilesMatch> でいいと思う。

関連するQ&A

  • .htaccess記述、ディレクトリ→特定ファイル

    .htaccessの記述についてお伺いさせてください。 現在、特定のディレクトリにアクセスがあった際に、特定のファイルに転送したいと設定を試しているのですが、上手くいきません…。 ディレクトリからディレクトリでは無く、ファイルからファイルでもありません。 同じドメイン内で、特定のディレクトリ以下の全てのファイルにアクセスがあった場合、特定のファイルに転送したいです。 具体的には、 /hogehoge/ こちら以下にアクセスがあった際、 /mogemoge/hage.html といった具合に、ピンポイントで転送表示を行いたいと考えています。 再度ですが、ドメインは同一内で行い、/hogehoge/ → /mogemoge/hage.html といった具合に指定ファイルに転送を掛けたいです。 .htaccessの記述にお詳しい方いらっしゃいましたら、アドバイスのほどよろしくお願いします。

  • htaccessについて

    先ほど、.htaccessにRedirect permanentを記述し、リダイレクトができるようになりました。 そこで、他で気になることがでてきました。 もともとルートディレクトリには、別件で.htaccessをアップロードしてましたので、もともと.htaccessには他の記述がありました。 Redirect permanentを追記しましたが、.htaccessに記述(指令)できる容量はあるでしょうか? また、.htaccessはルートディレクトリではない、他のディレクトリにアップロードするような場合はあるのでしょうか? さらに、.htaccessをルートディレクトリと他ディレクトリにアップロードして使う場合などありますか? もしかしたら、ありえない事を言っているかもしれませんが、よろしくお願いします。

    • ベストアンサー
    • HTML
  • .htaccess サイトアドレスの変更の際の告知ページ

    .htaccess での設定を教えてください。 旧サイト http://www.xxx.co.jp/aaa/ 新サイト http://ooo.xxx.co.jp/ 新URL変更にあたり.htaccessで Redirect permanent /aaa/ http://ooo.xxx.co.jp/301.html としましたが、 /aaa/bbb にアクセスがあった場合に転送がされません。 そこで、http://www.xxx.co.jp/aaa/  /aaa以下フォルダファイルすべてにアクセスをすると http://www.xxx.co.jp/indexhtml 転送されるようにしたいのですが、 どのようにすればよいのでしょうか? お忙しい中申し訳ございませんが、 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • 下の階層のディレクトリへのリダイレクト

    .htaccessファイルでリダイレクトを行いたいのですが、 リダイレクトループになってしまいます。 独自ドメインではなく、レンタルサーバーに付与されているアドレスを 使っております。 http://○○○.lolipop.jp/△△△/ へアクセスされたときに、 http://○○○.lolipop.jp/△△△/□□□/ へ移動してほしいのですが、 .htaccessファイルに、 Redirect permanent /△△△/ http://○○○.lolipop.jp/△△△/□□□/ と記述すると、リダイレクトループになってしまいます。 どのように記述するのがいいのでしょうか。

    • ベストアンサー
    • HTML
  • .htaccessで特定のホストだけ転送させるには

    嵐にあっています。 IPホストが●●●.●●.4~34の間でアクセスしてくる事まで分かっています。 .htaccessでアクセス制限をかけようとも思ったのですが、 その人物に警告を出したくって、あるURLに転送させたいと考えております。 そこで.htaccessの記述についての質問です。 order allow,deny allow from all deny from 制限をかけたいホスト・IP Redirect permanent /web/ http://●●.▲▲▲.jp/error.html 上の書き方では間違っているようです(^^;) まず、●●●.●●.4~34の間のホストだけ制限するにはどういった表記になるのでしょう? http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/access.html#access2 で勉強してみたのですが、少々自分にはレベルが高く、分かりませんでした。 あと、特定のページへ転送させる方法も間違っているのでしょうか? スミマセンが、初心者にも分かりやすく教えて頂けるとありがたいです。 よろしくお願い致します。

    • ベストアンサー
    • HTML
  • .htaccessでリダイレクトさせたいのですが、単純転送ではありませ

    .htaccessでリダイレクトさせたいのですが、単純転送ではありません。 アクセス先に応じて転送先を変えたいです。 ルール通りではないので、人力的な転送になるかと思います。 http://hogehoge.net/old/ というドメインとディレクトリがあったとします。 うち、oldのディレクトリ及びそれ以下のアクセスを転送させたいです。 この場合、oldディレクトリに.htaccessを置いて転送させればいいかと思うのですが、 以下のような場合はどういう記述をすれば実現できますでしょうか? 1、/old/index.php?p=1と/old/index.php?p=2は、http://mogemoge.net/new/1.htmlへ転送 2、/old/index.php?p=3と/old/index.php?p=5は、http://mogemoge.net/new/2.htmlへ転送 3、/old/index.php?p=4は、http://mogemoge.net/new/3.htmlへ転送 4、上記以外(oldディレクトリ以下、index.php、index.php?p=6など)は全て、http://mogemoge.net/new/index.htmlへ転送 .htaccessの記述経験がなく、色々調べてはみたのですが、よく分かりませんでした。 どうかよろしくお願いいたします。

  • htaccess リダイレクト機能の利用法を教えてください。。

    お世話になっております。 仮のURLで質問させて頂きます。 http://www.pine.co.jp/ma/index.htmlにアクセスがあった場合に、 https://wadax55.wadax.ne.jp/~pine-co-jp/ma/index.html にリダイレクトされるようにしたいのです。 そこでインターネットにありました以下文章を読んだのですが、よくわからないのです・・。お手数ですが教えてくださいますようお願い致します。 .htaccessでは、ディレクトリー構造そのままにリダイレクトさせることも可能です。 Redirect permanent /test/ http://www.shtml.jp/htaccess/ とすれば、http://www.shtml.jp/test/以下にあるファイルへのアクセスがあった場合には、リダイレクトされます。例えば、http://www.shtml.jp/test/basic.htmlへのアクセスは、http://www.shtml.jp/htaccess/basic.htmlへリダイレクトされます。 自分でこうかな?と思うやり方をトライしてみたものの悉く失敗し、めげています…。図々しいのですが、、、つまりどのように.htaccessファイルに記述し、それをどこに設置すればいいのでしょうか・・・?ファイルもだけれどもhtaccessというフォルダが必要なのか??というレベルです。 申し訳ございません。。。 教えて頂けますと大変助かります。

  • .htaccessで

    .htaccessを用いて、ある特定のディレクトリ以下にアクセスされた 場合にだけ、指定したphpファイルへ飛ばすような設定をしたいと 考えています。 サーバー全体的には「ErrorDocument 404 /xxx/xxxxxxx.php」と言う 設定がされてあり、同じように特定のディレクトリでError 404が 検出されたときだけ上記とは違うphpファイルに飛ばしたいのです。 色々試してみて、「RewriteRule」で特定のディレクトリ以下への アクセスを指定したphpファイルへリダイレクトさせるようには 出来ているのですが、「ErrorDocument」で出来れば、そちらの方が 後に良いかもしれないと考えております。 良い方法は、ありませんでしょうか。

  • htaccessで転送

    Redirect permanent / http://ドメイン/ ↑の設定でhtaccessで301リダイレクトを行っています。 これを以下の例のように、/以下の指定したフォルダはリダイレクトを適用させないことはできますでしょうか? (例) / ↑リダイレクト適用する /html/ ↑リダイレクト適用する /cgi-bin/ ↑リダイレクト適用しない /css/ ↑リダイレクト適用しない

  • htaccessのリダイレクトがループしてしまう

    http://hoge.com/ で運用しているものを http://hoge.com/foo/ のサブディレクトリに移動させようとしています。 .htaccessに --------------- Redirect permanent / http://hoge.com/foo/ --------------- と記述して http://hoge.com/ にアクセスしたら http://hoge.com/foo/foo/foo/foo/... とループしたような状態になってしまいました。 --------------- RedirectMatch 301 ^/$ http://hoge.com/foo/ --------------- だと http://hoge.com/ にアクセスした時は意図した動作になるのですが http://hoge.com/content1.html は転送されてくれません。 どのように記述したらいいでしょうか? サーバーはApacheを使用しています。