• ベストアンサー

htaccessでoreder allow,denyとRewriteEngine onは同時に使える?

.htaccessを使用して特定IP(***.xxx.xxx.xxx)からのアクセス制限と同時に特定IP(yyy.yyy.yyy.***)の場合は別サイトへ転送するのを同時にやりたいです。 独立して.htaccessに記述すると動作しましたが、2つとも記述すると動作しませんでした。 order allow,deny allow from all deny from ***.xxx.xxx.xxx RewriteEngine on RewriteBase / RewriteRule .* http://zz*.com/

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

  • ベストアンサー
  • liv2007
  • ベストアンサー率81% (378/464)
回答No.2

「deny」と「RewriteCond」に設定するIPアドレス は、それぞれ別のものになっていますでしょうか? 同じIPアドレスを設定しても動作しないように思います。 order allow,deny allow from all deny from xxx.xxx.xxx.xxx RewriteEngine on RewriteCond %{REMOTE_ADDR} yyy\.yyy\.yyy\.yyy RewriteRule .* http:/***.com/ あるいは、以下の設定で試した場合はどうなります でしょうか? #アクセスを拒否したいIPアドレス RewriteEngine On RewriteCond %{REMOTE_ADDR} xxx\.xxx\.xxx\.xxx RewriteRule ^.*$ [F] #別のページに飛ばしたいIPアドレス RewriteCond %{REMOTE_ADDR} yyy\.yyy\.yyy\.yyy RewriteRule .* http:/***.com/ http://www.ksknet.net/apache/rewritecond_rew.html ※こちらで待っていても回答がつかない場合は、 この質問を締め切って「技術者向け」の方に再度 質問を投稿されることをお奨めします。m(__)m

その他の回答 (1)

  • liv2007
  • ベストアンサー率81% (378/464)
回答No.1

別サイトに誘導する特定IPの設定がないようですが、 「RewriteCond」で設定するとどうなりますでしょう か? http://dog.intcul.tohoku.ac.jp/unix/accs-rest.html#rewrite http://dog.intcul.tohoku.ac.jp/bbs/spool/mediaweb/apache_access.html http://www.nurs.or.jp/~sug/homep/rewrite/rewrite15.htm http://japache.infoscience.co.jp/rewriteguide/ 私は詳しくないので良く分かりませんが、「Rewrite Base」の使い方も再確認した方が良さそうです。

123isao
質問者

補足

すみません、1行抜けていました。 order allow,deny allow from all deny from ***.***.***.*** RewriteEngine on RewriteBase / RewriteCond %{REMOTE_ADDR} ***\.***\.***\.*** RewriteRule .* http:/***.com/ 前半部分のみ、又は後半部分のみでは動作確認が取れています。

関連するQ&A

  • htaccess で特定IP以外をリダイレクト

    特定IPの以外のアクセスは指定URLへリダイレクトさせたいのですが、うまく行きません。 ↓のように.htaccessに記述しているのですが間違っているんでしょうか? ------------------------------------------- order allow,deny allow from XXX.XXX.XXX.XXX deny from all ErrorDocument 403 http://yahoo.co.jp ------------------------------------------- 「XXX.XXX.XXX.XXX」のIPは自分のIPを記述しているので、yahooにリダイレクトされないのが正しい動作なのですがyahooへリダイレクトされてしまいます。 お詳しい方がおられましたらご回答宜しくお願い致します。

  • .htaccessで複数設定するには?

    .htaccessを使って「特定のIPアドレス・ホストからのアクセスを拒否」と 「特定のリンクからのアクセスを拒否 」の2つを一緒に設定したいのですが、 どうすればいいのでしょうか? 単独での書き方はそれぞれ調べて分かったのですが、1つにまとめての記述方法が分かりません。 --------------------------------------------------- order allow,deny allow from all deny from ●● deny from ○○ deny from ▲▲ deny from △△ SetEnvIf REFERER "http://○○○.com/" Ref1 Order Allow,Deny Allow from all Deny from env=Ref --------------------------------------------------- といった感じに記述したものの、全く動作してくれません。 ご存知の方いらっしゃいましたら、宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • RewriteEngine on について

    こんにちは。 SEOの一環として、「http://www.AAA.jp」へのアクセスを「http://AAA.jp」へリダイレクトさせる為に、.htaccess を設定してみたのですが、思惑通りうまくいきません。 ご指導願います。 .htaccess の中身全文を掲載します。 ---------------- <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> Options -Indexes RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.AAA\.jp)(:80)? [NC] RewriteRule ^(.*) http://AAA.jp/$1 [R=301,L] Redirect permanent /sub1 http://sub1.AAA.jp/ Redirect permanent /sub2 http://sub2.AAA.jp/ order deny,allow ---------------- 一部関係なさそうなコードが入ってますが、私の無知識が引き金になっていたら、と思ったので、敢えて全文を掲載させて頂きました。 サーバーは、ロリポップです。 どこか間違っている箇所はございますでしょうか? よろしくお願いします。

  • .htaccessで弾けない

    悪意のある特定のIPからのアクセスを別サイトに飛ばすため、 下記のように.htaccessファイルに記述しています。 <Limit GET POST PUT> order allow,deny allow from all deny from 特定のIP </Limit> ErrorDocument 403 http://www.yahoo.co.jp/ ところが、.htaccessファイルを設置しても、アクセス解析を見ると 相手のIPからのアクセスが残っています。 .htaccessで弾かれずに、普通に閲覧できているようです。 試しに自分のIPを記述してみたところ、確かにhttp://www.yahoo.co.jp/に 飛ぶので、.htaccessは機能しているはずなのですが、なぜだかわかりません。 対処法をご存知の方がいらっしゃったらご教示ください。 宜しくお願いします。

  • apache2でのallow,deny指定について

    Linux+Apache2+PHP+MySQLの組み合わせでWebサーバを運用しています。 海外向けのサービスのため、 日本国内からのWebアクセスを遮断することになりました。 日本国内のIPアドレス表はあるので、 httpd.conf内で <Directory ~> Order allow,deny Allow from all Deny from xx.xx.xx.xx/xx (以下国内IPアドレスが続く) </Directory> としてIPアドレスにより遮断しました。 これ自体は問題なく稼働しています。 ただ、日本国内からも運用上いくつかの拠点で閲覧できる必要があり、それらのIPアドレスに対してallow指定をしたいのですが、どうもうまくいきません。 ようは order allow,deny,allow のような感じでできればいいのですが、そういう指定はできないようです。 <Directory>ディレクティブを下で再定義したり、別に.htaccessで定義してallowしてみたりしたのですが、そうするともともとあったdeny指定がクリアされてしまうようです。 もちろん、deny fromするサブネットを細かく分けて記述すればいいのですが、今後IPアドレスの追加や削除が発生しうるため、あまり国内IPアドレス表の部分はいじりたくないのです。 また、deny from allでその後海外のIPアドレスをallowするというのは、IPアドレス表が膨大になりすぎるので、これも避けたいです。 理想的には、httpd.confで国内を遮断した後、別ファイルで許可するIPアドレスを記述できればと思っています。 なお、PHPアプリケーションのほうで遮断するというのはパフォーマンスが劣化するため考えておりません。 現在は、仕方なくサブネット単位で #Deny from xx.xx.xx.xx/xx みたいにコメントアウトして運用しています。 「絶対に国内からは見られては困る」というほどでもないので、まあこれでもいいかと思っていますが、 もっとスマートなやり方はないかと思いご質問させていただきました。 なにとぞよろしくお願いいたします。

  • .htaccessの記述間違いを教えてください

    .htaccessを使用して、アクセス制御を行おうとしたのですが、アップロードしてアクセスしてみるとすべてのアクセスがブロックされてしまいました。 制御したい事柄は以下の通りです。 ファイルの「.htaccessと.htpasswdと.class.php」にはアクセスできないようにすること。 IPアドレス88.80.10.1は、アクセス拒否 ユーザーエージェントの「MorfeusとZmEu」の名前がつくものは、FORBIDDEN を返すというものです。 以下 .htaccess の記述内容 ----------------------------------- <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> <Files ~ "\.class\.php$"> deny from all </Files> Order allow,deny Deny from 88.80.10.1 RewriteEngine On RewriteOptions inherit RewriteCond %{HTTP_USER_AGENT} ^Morfeus RewriteRule ^.*$ - [F] RewriteCond %{HTTP_USER_AGENT} ^ZmEu RewriteRule ^.*$ - [F] ----------------------------------- 何卒よろしくお願いいたします。

  • .htaccessの設定について

    .htaccessの設定について以下のように記述しましたが、 404のページに飛んでしまいます。 REQUEST_FILENAMEが見つからないときは、index.phpに飛んでくれる設定ではないのですか? それとも、REQUEST_FILENAMEに直接フルパスをhtt;//xxx.net/という風に指定してくれるものなのでしょうか? よろしくお願いします。 <記述したコード> AddType x-mapp-php5 .php AddHandler x-mapp-php5 .php RewriteEngine on Options +FollowSymlinks RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L] ErrorDocument 404 /page-unavailable/ <files ~ "\.tpl$"> order deny,allow allow from none deny from all </files>

  • htaccessで、特定IP以外をリダイレクトさせたい。

    初心者です。 .htaccessを使ってメンテナンス画面を表示させようと思っています。 条件として、 ・特定のファイルへのアクセスを、リダイレクトさせる。 ・動作確認を行うため、自分のIPの場合はリダイレクトさせない。 ファイルに対してのリダイレクトは、 Redirect /aaa/aaa.php /maintenance/maintenance.html 特定IPに対して、ディレクトリ単位のリダイレクトは、 order deny,allow deny from all allow from xxx.xxx.xxx.xxx ErrorDocument 403 /maintenance/maintenance.html というところまでは解決したのですが、 「特定IPに対して、ファイル単位のリダイレクト」 は、どのように指定すればよいのでしょうか?

    • ベストアンサー
    • HTML
  • アクセス制限について

    初めまして。 質問の内容ですが、www直下においてある.htaccessに動作確認の為自分のホストをdenyするように記述しても、フォルダBにあるファイルにアクセスできてしまいます。フォルダAのバナーは表示されなくなるのですが…。 ロボ避けが働かないと困るので、何とか機能させたいと思っています。ディレクトリの構成と内容は以下の通りです。 | .htaccess | フォルダA(直リンクバナーを置いています)   |-.htaccessなし | フォルダB(サイト本体です)   |-.htaccessあり | フォルダC(制限にかかった時表示するファイルを置いています)   |-.htaccessあり ==========直下の.htaccess=========== DirectoryIndex index.html .ht order allow,deny allow from all deny from xxx.xxx.xxx.xxx deny from 自分のホスト名 <Files ~ "^\.ht"> deny from all </Files> <Files robots.txt> order deny,allow allow from all </Files> ==========フォルダB=========== DirectoryIndex index.html .ht ErrorDocument 403 /フォルダC/403.html order allow,deny allow from all deny from yyy.yyy.yyy.yyy <Files ~ "^\.ht"> deny from all </Files> ====================== です。長くてすみません。 以前動作確認した時はちゃんと弾かれていたのですが、最近フォルダBにある.htaccessを編集した時に再度動作確認してみると弾かれなくなっていました。 フォルダBに自分のホストをdenyするように書くとちゃんと機能します。どの辺りをいじればいいでしょうか?

    • ベストアンサー
    • HTML
  • .htaccess の書き方について教えてください。

    こんにちは、質問させてください。 webサイトを運営しており、.htaccessによるアクセス規制を検討しています。 下記のように複数のアクセス規制をしたい場合、どのように書けば良いでしょうか? ○特定IPアドレスからのアクセス ○プロキシ経由でのアクセス ○特定URLからのアクセス 過去ログ等を検索してみて、現在、以下のようなソースにしています。 ------------------------------------- #特定IPとプロキシ経由の拒否 order allow,deny allow from all deny from ***.***.**.*** order deny,allow deny from all allow from .jp allow from .net allow from .com #特定アドレスからのアクセス拒否 SetEnvIf Referer "http://sample.url.com" ref01 order Allow,Deny Allow from all Deny from env=ref01 ------------------------------------- プロキシ経由の場合、すべてを弾くのは難しいと思いますが… 何か他に良い書き方がありましたら、アドバイスをお願いします。 よろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう