2016-10-13 12 views
1

私は以下のパターンと場所を一致させることができません、私は24時間に有効期限のヘッダーを設定したいと思います。それは動作していません。例以下はNginxの場所一致正規表現が動作しません

location ~* .*abc\.php.* { 
expires 24h; 
} 

が動作しない:私は今述べた正規表現の下に使用している場合には動作します。

location ~* .*abc\.php.*xyz=detail.*login_something=.* { 
expires 24h; 
} 

コンテンツの多くは、 "XYZ =詳細" & "abc.php" &の間と後にある "login_somethingは=" 私は使用する必要があります。*のみ。

ありがとうございます!

+0

何か。 [詳細はこちら](http://nginx.org/en/docs/http/request_processing.html#simple_php_site_configuration) –

+0

@WiktorStribiżew:それは動作しません。 – KeyurM

+0

@ KeyurM:確かに、Richardのコメントを読んでください。 –

答えて

1

あなたがしようとしていることを達成する方法はいくつかありますが、最も簡単な方法はURI全体(クエリ文字列を含む)にメガ正規表現を適用することです。これは、第二の問題は、単にmapディレクティブas detailed in the expires documentationを使用し、expiresを操作して、もう一度、というよりも、複数のブロックを使用し、それぞれにPHPディレクティブを再実装する必要がありますする方法です$request_uri

だろう。例えば

:? ``以降のクエリ文字列であると `location`にURIを照合する際に考慮されていないから

map $request_uri $expires { 
    default         off; 
    ~*abc\.php.*xyz=detail.*login_something= 24h; 
} 

server { 
    ... 
    expires $expires; 
    ... 
} 
+0

期待通りに機能しました。ありがとう! – KeyurM

関連する問題