Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gzupanda
code-server
提交
561b6343
C
code-server
项目概览
gzupanda
/
code-server
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
code-server
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
561b6343
编写于
3月 31, 2020
作者:
A
Asher
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Ensure a trailing slash on subpath proxy
上级
e68d72c4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
14 addition
and
5 deletion
+14
-5
doc/FAQ.md
doc/FAQ.md
+1
-1
src/node/app/proxy.ts
src/node/app/proxy.ts
+13
-4
未找到文件。
doc/FAQ.md
浏览文件 @
561b6343
...
...
@@ -83,7 +83,7 @@ Now you can browse to `<port>.coder.com`. Note that this uses the host header so
ensure your reverse proxy forwards that information if you are using one.
### Sub-paths
Just browse to
`/proxy/<port>`
.
Just browse to
`/proxy/<port>
/
`
.
## x86 releases?
...
...
src/node/app/proxy.ts
浏览文件 @
561b6343
...
...
@@ -30,15 +30,24 @@ export class ProxyHttpProvider extends HttpProvider implements HttpProxyProvider
request
:
http
.
IncomingMessage
,
response
:
http
.
ServerResponse
,
):
Promise
<
HttpResponse
>
{
const
isRoot
=
!
route
.
requestPath
||
route
.
requestPath
===
"
/index.html
"
if
(
!
this
.
authenticated
(
request
))
{
// Only redirect from the root. Other requests get an unauthorized error.
if
(
route
.
requestPath
&&
route
.
requestPath
!==
"
/index.html
"
)
{
throw
new
HttpError
(
"
Unauthorized
"
,
HttpCode
.
Unauthorized
)
if
(
isRoot
)
{
return
{
redirect
:
"
/login
"
,
query
:
{
to
:
route
.
fullPath
}
}
}
return
{
redirect
:
"
/login
"
,
query
:
{
to
:
route
.
fullPath
}
}
throw
new
HttpError
(
"
Unauthorized
"
,
HttpCode
.
Unauthorized
)
}
const
payload
=
this
.
doProxy
(
route
.
requestPath
,
request
,
response
,
route
.
base
.
replace
(
/^
\/
/
,
""
))
// Ensure there is a trailing slash so relative paths work correctly.
const
base
=
route
.
base
.
replace
(
/^
\/
/
,
""
)
if
(
isRoot
&&
!
route
.
originalPath
.
endsWith
(
"
/
"
))
{
return
{
redirect
:
`/proxy/
${
base
}
/`
,
}
}
const
payload
=
this
.
doProxy
(
route
.
requestPath
,
request
,
response
,
base
)
if
(
payload
)
{
return
payload
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录