質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

1回答

2833閲覧

.htaccessで複数のディレクトリー指定ができません。

efu_akio

総合スコア37

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2019/04/25 15:24

以下のような記述で/m/のフォルダーのみhttpsで入力したときにhttpにリダイレクトができました。
これと同じ処理で複数指定したいのですができません。

<IfModule mod_deflate.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !^/m/ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] RewriteCond %{HTTPS} on RewriteCond %{REQUEST_URI} ^(/m/) RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule>

↓このようにもう一つ/admin/を指定したところ/admin/もリダイレクトせず/m/もリダイレクトできなくなりました。

<IfModule mod_deflate.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !^/m/ RewriteCond %{REQUEST_URI} !^/admin/ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] RewriteCond %{HTTPS} on RewriteCond %{REQUEST_URI} ^(/m/) RewriteCond %{REQUEST_URI} ^(/admin/) RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule>

どのように記載すれば複数指定ができるのかご教示いただけますでしょうか

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

全てAND条件なので全てがFALSEとなりRewriteRuleが実行されません。

RewriteCond %{HTTPS} on RewriteCond %{REQUEST_URI} ^(/m/) RewriteCond %{REQUEST_URI} ^(/admin/) RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

以下のようにOR条件の所は[OR]を指定しましょう。
あと、(^/m/)などとされていますが括弧は不要です。

RewriteCond %{HTTPS} on RewriteCond %{REQUEST_URI} ^/m/ [OR] RewriteCond %{REQUEST_URI} ^/admin/ RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

投稿2019/04/25 15:28

編集2019/04/25 15:31
Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

efu_akio

2019/04/25 22:19

ご回答ありがとうございます。()を外して[OR]に変えて試したのですがなぜかうまくいかないです。 かなり理解が低く、何か間違っているとおもいます。いろいろ試してみます。
Y.H.

2019/04/25 23:48

ブラウザのキャッシュはクリアしてから確認されてますか?
efu_akio

2019/04/25 23:59

はい、キャッシュクリアとシークレットウィンドウでも試しましたがダメでした。 /m/ [OR]の間の半角スペースが入っていたらエラーになり、外すと通過しますが最初と同じリダイレクトできない状態のままでした。 ()は外しています。
efu_akio

2019/04/26 00:53

解決しました。 RewriteEngine Onの方にも[OR]が必要と思い込んでしまい付けていました。 お騒がせしました、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問