2

サブドメインにリダイレクトしたいいくつかの異なるURLパラメータがあります。

mydomain.com/blog/title-of-the-post-> blog.mydomain.com/title-of-the-post

mydomain-com / taxonomy / term / id-> mydomain.com/id

したがって、ロジックはほとんど書き直されていますが、URLの一部を取得して使用したいと考えています。これはできますか?

4

1 に答える 1

3

はい、リライトで後方参照を使用できます。

location /blog/ {
   rewrite ^/blog/(.*)$ http://blog.mydomain.com/$1 permanent;
}

他の書き換えでも同じことが機能します

アップデート:

ブログ部分を保持したい場合は、$uri を変更せず、$host のみを変更すれば、簡単になります。

location /blog/ {
  rewrite ^ http://blog.mydomain.com/$uri permanent;
}

注: nginx 標準変数は、http ://wiki.nginx.org/HttpCoreModule#Variables にリストされています。

複数のパラメータの場合、さらに後方参照 $2 $3 などを使用します (正規表現で使用する部分をグループ化、つまり括弧で囲んでください) 例:

location /blog/ {
  rewrite ^/blog/([0-9]{4})/(.*)$ http://blog.mydomain.com/$1/$2 permanent;
}

これは、ブログの URL の 4 桁の年に一致します。正規表現と後方参照の詳細については、たとえばhttp://www.regular-expressions.info/brackets.htmlを参照してください。

于 2012-09-05T12:08:16.960 に答える