0

ウェブサイトでデータベースの破損がありました。現在、新しいデータベースを構築しています。

しかし、私たちは別のアプローチを考え出しました。古い記事をサブドメインに移行し、より優れた UI とアーキテクチャを備えた新しい Web サイトを構築しています。

私がやりたいのは、古いウェブサイトからサブドメインに URL をリダイレクトすることです。次のような形式ではありません。

http://olddomain.com/foo/something

http://sub.olddomain.com/foo/something

古いドメインを維持して新しいコンテンツを提供したい

http://oldomain.com/foo2/something

これはNginxで可能ですか


アップデート

リダイレクトしたい単語が決まっています

私たちはただ欲しい

 http://olddomain/foo/extrainfo

リダイレクトする

http://sub.olddomain/foo/extra

書き換え規則を使用する場合

/abc/ redirect permanent

URL にfooという単語が含まれており、新しいドメインにリダイレクトされるという問題が発生しています。

http://sub.olddomain./foo/extrahttp://olddomain/foo/にリダイレクトしたいだけです

http://olddomain/abc/fooしないhttp://sub.olddomain

4

2 に答える 2

0

古い URL か新しい URL かを識別するために、URL 内に何かが必要になります。何かあれば、簡単に質問にお答えできます。与えられた例は、次の方法で簡単に解決できます。

location ~ ^/[a-z]+/[a-z]+$ {
  return 302 $scheme://sub.$server_name$request_uri;
}

location ~ ^/[a-z0-9]+/[a-z]$ {
  // serve new stuff
}

ただし、検索エンジンやその他のロボットのことも忘れないでください。将来、新しいコンテンツに元の URL を使用する予定がある場合は、何もリダイレクトせずに、単に同じ場所にページを配信してください。

于 2013-10-16T18:44:38.803 に答える
0

はい、これはnginxで簡単です。正しい場所/サーバー ブロックに書き換えルールを配置するだけです。

server { 
    listen       80;
    server_name olddomain.com;
location ~/foo/ {
 rewrite ^ http://sub.olddomain.com$request_uri? permanent;
    }
  location / {
#serve new content
    }
}

server{
        listen       80;
        server_name sub.olddomain.com;
      location / {
    #serve old content
        }
}

SEOを考慮に入れる必要があるという以前のコメントに同意します。

于 2013-10-16T19:30:15.047 に答える