Apache

  (最終更新日:2015.05.13)

RewriteCondが効かない?特定のディレクトリを除外する方法でつまずいたお話

CakePHPをトップディレクトリから利用しています。

http://********/ でアクセスする感じ

このとき、 http://********/pc/ へのアクセスは Rewrite させたくないなぁと思い、 htdocs/.htaccess の中に RewriteCond を指定したのですがどうにこうにも上手くいきませんでした。

<IfModule mod_rewrite.c>
   RewriteEngine  on
   RewriteCond    %{REQUEST_URI}  !(^/pc/)
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

なんでじゃぁぁぁ とクタクタになりかけたその時、こちらのサイトの一文がすごく参考に‥。
 .htaccessの書き方 (murashun.jp)

RewriteCondの処理順は、どうやら先に RewriteRule をマッチングで確認し、その後にその上に書かれている条件 RewriteCond のマッチングをして処理にすすむ仕様のようです。

つまり、

   RewriteCond    A  B
   RewriteRule    C  HOGEEEE

とかかれている場合は、まず条件 C にマッチして、かつ A が B にマッチする場合は HOGEEEE にぶっ飛ばす動きとなります。

これを踏まえ、先ほどの .htaccess を下記のように変更しました。

<IfModule mod_rewrite.c>
   RewriteEngine  on
   RewriteCond    %{REQUEST_URI}  !(^/pc/)
   RewriteRule    ^$ app/webroot/    [L]
   RewriteCond    %{REQUEST_URI}  !(^/pc/)
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

無事にリダイレクトされないようになりました!!!

恐るべしスイス製アーミーナイフ。

スポンサーリンク
スポンサーリンク

関連記事

  1. Apache

    mod_rewriteでログ出力をして500エラーを調査する方法

    .htaccessでのmod_rewriteが原因で、Internal…

  2. Apache

    【解決済】原因は単純ミス‥。Apache+OpenSSLで構築したけどHTTPSに接続できない時

    いや。もうあまりの単純ミスぶりに自分をぶん殴りたいところですが。。。…

  3. Apache

    【Apache】OpenSSL headers not foundでconfigureが失敗する時

    Apacheをソースからインストールする際に --enable-ssl…

  4. Apache

    Apache 2.4をソースからインストールする

    Apache 2.4系をソースでインストールする方法です。2.…

  5. Apache

    オレオレ証明書(自己証明書)を大急ぎで作る方法

    取り急ぎ1年間(365日)有効なオレオレ証明書を大急ぎ(最短作業)で作…

コメント

    • WEB学習中
    • 2018年 6月 24日

    今更ながら、同じような状況で困って検索していたら、こちらの記事を見つけました。
    お蔭様で、RewriteCondの順番を入れ替えたら上手くいきました。
    非常に嬉しかったので、せめて御礼をと思い、コメント致します。
    ありがとうございました!

      • おかしら
      • 2018年 6月 26日

      コメントありがとうございます。
      お役に立てて良かったです!!
      まさかそこか‥ と思える点ですよね。。。私もこれに気が付くまで苦労しました。。。。

  1. この記事へのトラックバックはありません。

最近の記事

  1. 【NetApp】筐体廃棄前にディスクの完全消去をする手順
  2. 【PostgreSQL】同期レプリケーションモードで起動しな…
  3. Procmail のレシピ:本文で複数の条件(OR条件)を指…
  4. 【Apache】OpenSSL headers not fo…
  5. 【CentOS 7】yum updateがくっそ遅いときに試…
PAGE TOP