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

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

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

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

Q&A

解決済

3回答

1283閲覧

IP制限をしつつも特定のディレクトリだけ一般公開したい

rmrmnrm

総合スコア139

.htaccess

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

0グッド

0クリップ

投稿2018/07/11 07:12

編集2018/07/12 00:35

http://example.jp のaディレクトリに管理システムを導入しています。
IP制限を設置し、管理用のIP以外は別URLに遷移するようにしています。
htaccessはaディレクトリに設置しています。
以下の記述は問題なく動作しています。

htaccess

1<IfModule mod_rewrite.c> 2 RewriteEngine On 3 RewriteCond %{REMOTE_ADDR} !=111.111.111.111 4 RewriteCond %{REMOTE_ADDR} !=222.222.222.222 5 RewriteRule ^.*$ https://example.co.jp [R=301,L] 6</IfModule> 7

今回、その管理システム内の一部のみアクセスを全公開する必要があり、
http://example.jp/a/b/c/【数字】 にアクセスできるようにしたいのですが、
その記述がうまくいかず、リダイレクトされてしまいます。
以下が追記した内容です。
元々のIPアドレスでは問題なくアクセスできることを確認しています。

htaccess

1<IfModule mod_rewrite.c> 2 RewriteEngine On 3 RewriteCond %{REMOTE_ADDR} !=111.111.111.111 4 RewriteCond %{REMOTE_ADDR} !=222.222.222.222 5 RewriteCond %{REQUEST_URI} !(^/a/b/c/*) 6 RewriteRule ^.*$ https://example.co.jp [R=301,L] 7</IfModule> 8

どのように修正したらよいか、教えてください。
よろしくお願いします。

【追記1】
以下のURLを参考に修正しました。
http://www.techscore.com/blog/2014/12/16/%E5%85%A8%E3%81%A6%E3%81%AEweb%E6%8B%85%E3%81%AB%E6%8D%A7%E3%81%92%E3%82%8Bwrite%E8%A8%AD%E5%AE%9A%E9%9B%86/

htaccess

1<IfModule mod_rewrite.c> 2 RewriteEngine On 3 RewriteBase / 4 RewriteRule ^/a/b/c/ - [L] 5 RewriteCond %{REMOTE_ADDR} !=111.111.111.111 6 RewriteCond %{REMOTE_ADDR} !=222.222.222.222 7 RewriteRule ^.*$ https://example.co.jp [R=301,L] 8</IfModule> 9

ですが状況は変わりませんでした。

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

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

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

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

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

guest

回答3

0

一つ目の記述は、正規表現が間違ってますが、それでも大丈夫なはずなんですが。おかしいですね。
(正しくは、!^/a/b/c/

二つ目の記述は、^/a/b/c/じゃなくて^a/b/c/です。
参考にしたページの最初の記述は間違ってます。

あと、例示にはexampleドメインを使うので、another-example.jpじゃなくて、example.co.jpとかexample.comとかを使って下さい。

投稿2018/07/11 14:42

otn

総合スコア84499

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

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

rmrmnrm

2018/07/12 00:37

回答ありがとうございます。ドメインに関しては修正しました。 管理システム側の既存htaccessが問題だったようです。
guest

0

自己解決

以下の記述で解決しました。
管理システムのhtaccessと競合していたようです。
また、http://example.jp/a/b/c/のみアクセス可能としたかったところを管理画面のみをIP制限する方向に変更しました。

htaccess

1<IfModule mod_rewrite.c> 2 RewriteEngine On 3 RewriteBase / 4 RewriteCond %{REMOTE_ADDR} !=111.111.111.111 5 RewriteCond %{REMOTE_ADDR} !=222.222.222.222 6 RewriteCond %{REQUEST_URI} /a/x/y #ログイン画面 7 RewriteRule (.*) https://example.co.jp [R=301,L] 8 RewriteCond %{REMOTE_ADDR} !=111.111.111.111 9 RewriteCond %{REMOTE_ADDR} !=222.222.222.222 10 RewriteCond %{REQUEST_URI} /a/x/z #管理画面 11 RewriteRule (.*) https://example.co.jp [R=301,L] 12 RewriteCond %{REMOTE_ADDR} !=111.111.111.111 13 RewriteCond %{REMOTE_ADDR} !=222.222.222.222 14 RewriteRule (index.htm|index.html) https://example.co.jp [R=301,L] 15</IfModule> 16

投稿2018/07/12 00:41

rmrmnrm

総合スコア139

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

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

0

管理ディレクトリのルートの他に、アクセスを許可したいディレクトリ上に.htaccessを置きそこで例外を定義してください。
Webサーバは、アクセスされた場所の.htaccessを読み、無ければ上位の.htaccessを読みに行きます。

投稿2018/07/11 08:20

efcode

総合スコア422

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

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

rmrmnrm

2018/07/12 00:36

回答ありがとうございます。 管理システム自体のhtaccessが効かなくなってしまったので、その方法は使えませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問