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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

1回答

2009閲覧

LocationディレクティブでURLクエリ文字列がマッチできない

pond

総合スコア350

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2020/02/26 06:33

###ご質問
https://www.example.com/sample/?test_html&pageID=xx
https://www.example.com/sample/id=xx&more=1xxx
上記のようなURLで?test_htmlがつくURLとamp;moreがつくURLを全て
noindexにしたく、Apacheの設定ファイルで下記を設定 ⇒ restart ⇒
Chrome開発者ツールでヘッダー確認しましたが、X-Robots-Tagタグが
付与されず苦戦しております、正規表現方法もWEBの確認ツール
(https://weblabo.oscasierra.net/tools/regex/)では間違ってませんでした。

ご教示のほど、宜しくお願いいたします。

###環境
OS: CentOS Linux release 7.7.1908 (Core)
WEBミドルウェア:Apache/2.4.6 (CentOS)

###試した設定①
<Location "/.test_html/">
Header set X-Robots-Tag "noindex"
</Location>

<Location "/amp.more/">
Header set X-Robots-Tag "noindex"
</Location>

###試した内容②
<LocationMatch "/.test_html/">
Header set X-Robots-Tag "noindex"
</LocationMatch>

<LocationMatch "/amp.more/">
Header set X-Robots-Tag "noindex"
</LocationMatch>

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

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

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

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

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

Youichi256

2020/02/26 09:51

"&amp;"の部分は、そのままの文字列がURLに表示されているということで良いですか? そのあとの記述には"amp;"とあり、"&"がなかったりしますが、条件も本当にこれでよいのでしょうか? コードを記述する機能も使って、分かりやすく書きましょう。
guest

回答1

0

ベストアンサー

LocqtionLocationMatchは、ロケーション(URLやURLパス)のチェックです。クエリー(?以降)は対象外です。

クエリー文字列のチェックは、多分RewriteCondでしかチェックできないと思います。

投稿2020/02/26 06:41

otn

総合スコア86301

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

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

pond

2020/02/26 08:39

ご回答ありがとうございます。 RewriteCondも下記のように試してみたのですがうまくいかず。 RewriteCond %{REQUEST_URI} ^/?test_html RewriteRule .* ? [env=NOINDEX_HEADER:1] Header set X-Robots-Tag "noindex" env=NOINDEX_HEADER
Y.H.

2020/02/26 09:21

クエリーは、%{REQUEST_URI}に含まれません。 %{THE_REQUEST}なら含まれるのでこちらを使用してください。 で、"^"は先頭を"?"は直前の文字が0~1文字を意味するので^.*/?test_html とかにするとマッチしませんか?
Youichi256

2020/02/26 09:55

RewriteCond %{QUERY_STRING} test_html が良いかと思います。
pond

2020/02/26 11:41

ご回答ありがとうございます。試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問