.htaccessによる一部のリダイレクト制限について

このQ&Aのポイント
  • 質問者は、ドキュメントルートhome/直下の.htaccessで行われているリダイレクトについての制限方法を尋ねています。
  • 具体的には、home/webalizer直下に生成される.htmlファイルだけはリダイレクトせずに開けるようにする方法について関心があります。
  • 質問者は、ルート直下の.htaccessへの手を加えずに、webalizer内の.htmlファイルを直接開くことができるかどうか知りたいと考えています。
回答を見る
  • ベストアンサー

.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
  • 回答数2
  • ありがとう数9

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

  • ベストアンサー
回答No.1

home/webalizer/.htaccess に以下を記述。 RewriteEngine off 未検証です。

ukichon
質問者

お礼

教えて頂いた通りにやったら、解決しました! ありがとうございます。勉強になりました。

その他の回答 (1)

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .html$ http://www.sample.com/index.php RewriteCond とは、RewriteRuleを動かすか否かの条件式。 上記で言えば、hogehoge.htmlが指定された場合、実際にそのファイル名のファイルが存在しなかった場合、RewriteRuleを動作させるという条件になります。 つまり、存在するファイルが指定された場合はリライトしないという事で。 ちなみに、RewriteCondはそのすぐ後に書かれたRewriteRuleひとつにのみ適用されます。 RewriteRuleを複数書く場合、その必要があるなら毎回RewriteRuleの前に RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f と書く必要があります。

関連するQ&A

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

  • php化して、.htaccessでリダイレクトしたが、index.phpが強制的に表示されてしまう

    1.トップページをhtmlからphpに変更しました。 旧)http://www.hoge.com/index.html 新)http://www.hoge.com/index.php 2.「.htaccess」に301リダイレクトを記述しました。 Redirectpermanent /index.html http://www.hoge.com/index.php 3.困ったこと http://www.hoge.com/ でアクセスしたときに http://www.hoge.com/index.php に転送されてしまう。 できれば、 http://www.hoge.com/ このまま表示してほしいんですが、 .htaccessの記述に問題があるのでしょうか? すみません、分かる方には簡単なのかもしれませんが、 教えて頂ければ助かります。

    • 締切済み
    • PHP
  • .htaccessのリダイレクトの書き方

    .htaccessのリダイレクト処理で http://sample.com/index.phpにpost情報込みでアクセスがあった場合、 「www統一」 「index.phpなし」 「index.phpなしアドレスにリダイレクトされた場合もpostの値を取得できる」 という条件を満たすコードはどのようにすれば良いのでしょうか? 「www統一」や「index.phpなし」は説明サイトも多いので可能なのですが、リダイレクト後のURLでもpostの情報を取得する方法がわかりません。 どうそよろしくお願いします。

    • ベストアンサー
    • HTML
  • 動的URLから静的URLへの301リダイレクト

    下記のように動的URLを静的なURLに置き換えています。 http://www.sample.com/dir/aaa/index.php?content_id=1 ↓ http://www.sample.com/aaa_index.content_id_1.htm この動的URLを、置き換えた静的URLへ301リダイレクトさせたいのですが、うまくいきません。 htaccessの記述を下記のようにしましたが、多分、動的URLの「?」があるためうまくいかないようです。 RewriteEngine on RewriteBase / RewriteRule ^dir/aaa/index\.php?content_id=(.*)$ /aaa_index.content_id_$1.htm [R=301,L] 「?」が含まれる動的URLから静的URLに301リダイレクトさせたい場合、どのように記述すれば良いでしょうか?

  • リダイレクトのhtaccessを置くと403エラー

    perlで書いたCGIファイルがあるのですが、スマホ用のリダイレクトhtaccessファイルをトップディレクトリに置いた所、CGIのページが403エラーになってしまいました。 .htaccessファイルを外すと正常に表示するので、原因は.htaccessなのですが、理由が思い当たりません。 CGIのソースは出せないですが、お問い合せフォーム用のCGIです。 何かお気づきの点がありましたら助言お願い致します。 ● .htaccess(トップディレクトリに設置) <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) RewriteRule ^(.*)$ sp/$1 [R] RewriteBase / RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPhone|Android.*Mobile|Windows.*Phone) RewriteRule ^sp/(.*)$ $1 [R] RewriteBase / </IfModule> ● ディレクトリ構造 /index.html・・・トップページ /.htaccess・・・上記内容 /contact/all/index.cgi・・・403エラーになるCGI /contact/all/.htaccess・・・「Options ExecCGI」のみ記述 /sp/・・・スマホ用のリダイレクト先ディレクトリ(以下略)

  • httpsからhttpへリダイレクトさせたい

    Googleの検索結果で、なぜかトップページだけがhttpsでインデックスされてしまっています。 SSLを利用していないのでエラーが出てしまいます。そこで下記のようにリダイレクトをさせたいと考えています。 https://example.com/ ↓ http://example.com/ .htaccessを利用して行いたいのですが、どのように記述をしたらいいでしょうか。 色々試してみたのですが、トップページだけというのがうまくいきません。 よろしくお願いします。

  • .htaccessでGET引数をもとにリダイレクト

    http://test.com/ というサイトがあったとして、.htaccessを用い、 http://test.com/123 というアドレスにアクセスした場合、 http://test.com/sample.php?id=123 にリダイレクトし、 http://test.com/m/123 にアクセスした場合は、 http://test.com/m/sample.php?id=123にリダイレクトさせたいと考えています。 リダイレクト後もアドレスバーのURLは http://test.com/123、あるいは http://test.com/m/123のまま維持しているようにしたいです。 id は常に数字のみで、サーバーはロリポップのチカッパプランです。 上の方は RewriteEngine on RewriteRule ^([0-9]+)$ sample.php?id=$1 としたらなんとなくできているようですが、 「m」のほうは「m」ディレクトリ内に RewriteEngine on RewriteBase /m/ RewriteRule /m/([0-9])$ /m/sample.php?id=$1 と置いても404エラーになってしまいます。 どうしたら良いのでしょうか?

    • ベストアンサー
    • HTML
  • .htaccessによる301リダイレクト

    www.hoge.jp/test_hoge/ このディレクトリ以下を www.piyo.com に、リダイレクトしたいです。 下記のように.htaccessを記載したのですが、 RewriteEngine On RewriteRule ^test_hoge(.*)$ http://piyo.com$1 [R=301,L] そのファイルはどこへ格納すればいいのでしょうか。 現在ルートディレクトリは /www/test_hoge/ となっています。 .htaccessを/www/の中にいれても /test_hoge/の中にいれてもエラーがおきてしまいます。 ただ、macのテキストエディットで作成しているからかなと思うのですが、そういうことはありえますか? どなたかご回答お願いします。

    • ベストアンサー
    • CSS
  • モバイルサイトの302リダイレクトについて

    いつもアドバイスいただきありがとうございます。 現在、モバイルサイトの作成をしているのですが、リダイレクトについてわからないこと がありましたので、質問させてください。 rootに、.htaccessを配置し以下のように記述しております。 RewriteEngine on RewriteCond %{HTTP_USER_AGENT} ^DoCoMo RewriteRule ^$ /m/i/ [R=302,L] しかし、携帯でPCサイトにアクセスするとトップページ以外、リダイレクトされず、 そのままPCサイトが表示されてしまいます。 http://www.abc.com/123.html → http://www.abc.com/123.html いったい、何が原因なのでしょうか。初歩的な質問で申し訳ありませんが、 アドバイスいただけないでしょうか。よろしくおねがいします。

    • ベストアンサー
    • HTML