我确定以前有人问过这个问题,但我找不到有效的解决方案。
一个网站切换了CMS服务,但是域名相同,如何设置单个页面的nginx重写?
例如
http://sitedomain.co.uk/content/unique-page-name
http://sitedomain.co.uk/new-name/unique-page-name
请注意,我不希望内容页面中的所有内容都被重定向,而实际上只是上面提到的 url。我有大约 9 个重定向要设置,其中不适合某个模式。
谢谢!
编辑:我找到了这个解决方案,它似乎有效,除了它没有斜线重定向:
if ( $request_filename ~ content/unique-page-name/ ) {
rewrite ^ http://sitedomain.co.uk/new-name/unique-page-name/? permanent;
}
Run Code Online (Sandbox Code Playgroud)
但这会重定向到:
http://sitedomain.co.uknew-name/unique-page-name/
Pot*_*thu 110
直接引用陷阱和常见错误:征税重写:
通过使用 return 指令,我们可以完全避免对正则表达式的评估。
请使用return
代替rewrite
永久重定向。这是我对这个用例的方法......
location = /content/unique-page-name {
return 301 /new-name/unique-page-name;
}
Run Code Online (Sandbox Code Playgroud)
小智 23
理想情况下,如果可以避免,则不应使用 if 语句。像这样的东西可以工作(未经测试)。
location ~ /content/(.*)$ {
rewrite ^ /new-name/$1?$args permanent;
}
Run Code Online (Sandbox Code Playgroud)
Ste*_*son 15
我使用了以下解决方案:
rewrite ^(/content/unique-page-name)(.*)$ http://sitedomain.co.uk/new-name/unique-page-name/$2 permanent;
Run Code Online (Sandbox Code Playgroud)
很好用。
小智 12
对我来说,它没有像这样的等号:
location /old-url {
return 301 /new-url;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
248416 次 |
最近记录: |