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

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

新規登録して質問してみよう
ただいま回答率
85.31%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

1回答

2365閲覧

apache設定にてSubstituteを特定のURLを除外する方法について

prr4e

総合スコア73

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

0クリップ

投稿2017/10/16 06:31

表題について否定の設定がうまく行かず状態です。
お手数ええすが、ご教授頂けると助かります。

設定前

<IfModule mod_substitute.c> AddOutputFilterByType SUBSTITUTE text/html Substitute "s%</body>% script type=\"text/javascript\" src=\"/hoge.js\".....iqn" </IfModule>

上記のような設定に対し、特定のURLだけを除外したく設定をしたところうまく処理されず

<LocationMatch /(?!(hogehoge)> <IfModule mod_substitute.c> AddOutputFilterByType SUBSTITUTE text/html Substitute "s%</body>% script type=\"text/javascript\" src=\"/hoge.js\".....iqn" </IfModule> </LocationMatch>

上記を否定せず/hogehogeとした場合は、hogehoge/だけに反映されたのですが、
否定すると動作せず状態です。

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

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

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

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

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

guest

回答1

0

ベストアンサー

<LocationMatch /(?!(hogehoge)>

かっこの対応が取れていないように思います。
下記ではどうなるでしょうか。

<LocationMatch "^/(?!(hogehoge))">

投稿2017/10/16 13:40

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

prr4e

2017/10/17 03:52

ありがとうございます。 設定して見たもののダメでした。 SetEnvIfとかで指定可能でしょうか。
prr4e

2017/10/17 06:12

試しに SetEnvIf Request_URI "^/hogehoge" revserse <LocationMatch "^/(?!hogehoge)"> Order deny,allow Deny from all allow from env=!revserse と設定して見ましたが、状況変わらずです。
prr4e

2017/10/17 10:13

お恥ずかしい限りですが、webサーバーが2合あり、 両方apache再起動したら否定については対応できました。 ただ、逆にリバースプロキシを設定したコンテンツにはsubstituteで設定した内容が二行表示されるようになってしまいました。
退会済みユーザー

退会済みユーザー

2017/10/17 10:30

単純に考えますと処理が2回行われているか、2回行われていた状態のキャッシュが残っているか、といったことが可能性としてあるかと思います。
prr4e

2017/10/20 05:35 編集

ありがとうございます。 処理としては下記になりますが、二行でる原因がわからずです。 <VirtualHost *:80> <Location /contents/> #リバプロの設定 SetEnv proxy-initial-not-pooled 1 ProxyPass http://www.hogehoge/contents/index.html ProxyPassReverse http://www.hogehoge/contents/index.html </Location> <IfModule mod_substitute.c> AddOutputFilterByType SUBSTITUTE text/html Substitute "s%</body>% script type=\"text/javascript\" src=\"/hoge.js\".....iqn" </IfModule> </VirtualHost> curl コマンドだと、リバプロ先では設定されていないことがわかっており、 自ドメインのみで二行出力されています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問