私は自分のWebサイトを別のプラットフォームに移行していますが、新しいWebサイトのすべてのページの開発が完了するまでの間、ユーザーが2つのプラットフォーム間を移動する必要があります。
したがって、具体的には1つの単語が含まれているが、他の単語は含まれていないすべてのURLの301リダイレクトを作成する必要があります。
例:
「www2.misite.com/travel(.*)」という単語を含み、「reservation」と「hotel」という単語を含まないすべてのURLをリダイレクトする必要があります。
私のサーバーはNginxです。これが正規表現で行われるのか、nginxステートメントで行われるのかはわかりません。
どうもありがとうございました。
次の方法で問題を解決できました。
location ~ /travel(.*)+/(.*)$ {
if ($uri !~ "^(.*)/(reservation|hotel|faq)(.*)"){
return 301 https://www.misite.com$request_uri;
}
autoindex on;
root /usr/share/nginx/html/sites/;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args;
}
ありがとうございました。
やってみる
location ~ /travel(.*)+/(.*)$ {
if ($request_uri !~ "^/(reservation|hotel|faq)/\w+$"){
return 301 https://www.misite.com/$1;
}
}
ただし、内部状態では機能しません。 :(
転送したくない2つの単語について、否定的な前向きの正規表現を試してください。これは、if条件または書き換えルールで行うことができます。