我有这样的结构。
它开箱即用,当我路由到mydomain / entry_point1时,它提供正确的index.html
但是,如果我想将域的根(/)或任何其他无法识别的路由路由到特定入口点,该怎么办? 例如:
mydomain /
mydomain / some / path mydomain / some / other / path
必须将所有这些路径重定向到mydomain / entry_point3
但显然路线如下:
MYDOMAIN / entry_point1 /一些/资源
不会被重定向
我怎样才能做到这一点?
我还使用 react router ,因此mydomain / entry_point1 / path / to / resource等路由将被重写为入口点的索引文件
提前致谢
编辑: 我最终得到了以下配置:
server {
root path/to/folder;
index index.html index.htm;
server_name mydomain;
location ~^\/entry1\.* {
try_files $uri $uri/ /entry1/index.html;
}
location ~^\/entry2\.* {
try_files $uri $uri/ /entry2/index.html;
}
location ~^\/entry3\.* {
try_files $uri $uri/ /entry3/index.html;
}
location ~* {
try_files $uri $uri/ /entry3/index.html;
}
}
现在的问题是,当我路由到mydomain /它将我重定向到:mydomain / entry3 / entry3 / entry3 /....
除此之外,它完美无缺。
当我路由到 mydomain /(entry1 | entry2 | entry3)/ some / resource 时,它提供(entry1 | entry2 | entry3)/index.html
当我路由到 mydomain / some / other / path 时,它会提供entry3 / index.html
答案 0 :(得分:0)
server {
listen 8081;
location ~^\/entry2\.* {
return 301 $scheme://www.entrypoint2.com$request_uri;
}
location ~^\/entry1\.* {
return 301 $scheme://www.entrypoint1.com$request_uri;
}
location ~* {
return 301 $scheme://www.entrypoint1.com/;
}
}
curl -X GET“http://badasse.com:8081/entry1” - I => http://www.entrypoint1.com/entry1
curl -X GET“http://badasse.com:8081/entry1/sdfsdf” - I => http://www.entrypoint1.com/entry1/sdfsdf
curl -X GET“http://badasse.com:8081/entry2” - I => http://www.entrypoint2.com/entry2
curl -X GET“http://badasse.com:8081/entry2/sdfdsf” - I => http://www.entrypoint2.com/entry2/sdfsdf
curl -X GET“http://badasse.com:8081/esdfdsf” - I => http://www.entrypoint1.com/entry1