nginx 1.0.8 を使用しており、すべての訪問者を www.mysite.com/dir から Google 検索ページhttp://www.google.com/search?q=dirにリダイレクトしようとしています。 ここで、dir は変数です。ただし、dir=="blog"( www.mysite.com/blog) の場合、ブログのコンテンツ (Wordpress) をロードしたいだけです。
ここに私の設定があります:
location / {
root html;
index index.html index.htm index.php;
}
location /blog {
root html;
index index.php;
try_files $uri $uri/ /blog/index.php;
}
location ~ ^/(.*)$ {
root html;
rewrite ^/(.*) http://www.google.com/search?q=$1 permanent;
}
これを行うと、www.mysite.com/blog でも Google 検索ページにリダイレクトされます。最後の場所 www.mysite.com/blog を削除するとうまくいきます。
私がここで読んだことから: http://wiki.nginx.org/HttpCoreModule#location正規表現が優先され、クエリに一致する最初の正規表現が検索を停止するようです。
ありがとう