我正在将我的网站迁移到另一个平台,但是当我完成新网站的所有页面的开发时,我需要我的用户在两个平台之间导航。
因此,我需要对包含 1 个特定单词但不包含其他单词的所有 URL 进行 301 重定向:
例子:
- 旧网站:www2.misite.com
- 新网站:www.misite.com
我需要重定向所有包含单词“www2.misite.com/travel(.*)”但不包含单词“reservation”和“hotel”的 URL。
我的服务器是 Nginx,我不知道这是用正则表达式还是用 nginx 语句完成的。
非常感谢。
答案1
我能够通过以下方式解决我的问题:
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;
}
谢谢。
答案2
尝试使用正则表达式来否定前瞻,以查找您不想转发的两个单词。您可以在 if 条件或重写规则中执行此操作。