代码拉取完成,页面将自动刷新
Extra HTTP File Server基于Go HTTP File Server,附带额外功能。 它为简单静态网站提供了常用的功能。
基于Go HTTP File Server主分支,放弃了对旧版Go的支持。 这意味着不能使用旧的Go版本来编译较老系统的二进制文件,例如Windows XP。
对于PKI验证URL/.well-known/
,
即使指定了--to-https
,也将跳过从http:到https:的重定向。
--ip-allow <IP>|<network/prefix> ...
--ip-allow-file <file> ...
只允许来自指定的IP或网络的客户端访问。
不匹配的客户端IP会被拒绝访问。
--ip-deny <IP>|<network/prefix> ...
--ip-deny-file <file> ...
只拒绝来自指定的IP或网络的客户端访问。
不匹配的客户端IP会被允许访问。
--rewrite-host <分隔符><match><分隔符><replace>
如果请求的host+URL(“host[:port]/request/path?param=value”的形式)匹配正则表达式`match`,
将其重写为另一URL。
重写的目标由`replace`指定。
使用`$0`表示`match`的完整匹配。
使用`$1`-`$9`来表示`match`中的子匹配。
--rewrite-host-post <分隔符><match><分隔符><replace>
与--rewrite-host相似,但在重定向无匹配后执行。
--rewrite-host-end <分隔符><match><分隔符><replace>
与--rewrite-host-post相似,但匹配后跳过后续处理流程。
--rewrite <分隔符><match><分隔符><replace>
如果请求的URL(“/request/path?param=value”的形式)匹配正则表达式`match`,
将其重写为另一种形式。
重写的目标由`replace`指定。
使用`$0`表示`match`的完整匹配。
使用`$1`-`$9`来表示`match`中的子匹配。
--rewrite-post <分隔符><match><分隔符><replace>
与--rewrite相似,但在重定向无匹配后执行。
--rewrite-end <分隔符><match><分隔符><replace>
与--rewrite-post相似,但匹配后跳过后续处理流程。
--redirect <分隔符><match><分隔符><replace>[<separator><status-code>]
当请求的URL(“/request/path?param=value”的形式)匹配正则表达式`match`时,
执行HTTP重定向。
重定向目标由`replace`指定。
使用`$0`表示`match`的完整匹配。
使用`$1`-`$9`来表示`match`中的子匹配。
可选的`status_code`指定HTTP重定向代码。 默认为301。
--proxy <分隔符><match><分隔符><replace>
如果请求的URL(“/request/path?param=value”的形式)匹配正则表达式`match`,
将代理请求另一个目标。
代理的目标由`replace`指定。
使用`$0`表示`match`的完整匹配。
使用`$1`-`$9`来表示`match`中的子匹配。
--return <分隔符><match><分隔符><status-code>
当请求的URL(“/request/path?param=value”的形式)匹配正则表达式`match`时,
立即返回状态码`status-code`并停止处理。
--to-status <分隔符><match><分隔符><status-code>
与--return类似,但在ghfs内部处理流程完成后执行。
--status-page <分隔符><status-code><分隔符><fs-path>
当响应状态码为`status-code`时,用文件`fs-path`的内容来响应。
--gzip-static
当请求资源FILE时,如果客户端支持gzip解码,则尝试查找FILE.gz并输出为gzip压缩的内容。
--header-add <分隔符><match><分隔符><name><分隔符><value>
--header-set <分隔符><match><分隔符><name><分隔符><value>
当请求的URL(“/request/path?param=value”的形式)匹配正则表达式`match`时,
添加或设置响应头。
--ip-allow
或--ip-allow-file
,返回403状态并停止处理
--status-page
并停止处理。--ip-deny
或--ip-deny-file
,返回403状态并停止处理
--status-page
并停止处理。--rewrite-host
和--rewrite
以转换URL。--redirect
并停止处理。--rewrite-host-post
和--rewrite-post
以转换URL。--rewrite-host-end
和--rewrite-end
以转换URL,跳过其余处理流程,例如--rewrite[-host]-end
、--proxy
、--return
等。--proxy
并停止处理。
--header-add
和--header-set
并停止处理。--return
并停止处理。
--header-add
和--header-set
并停止处理。--status-page
并停止处理。--header-add
和--header-set
。--to-status
并停止处理。
--status-page
并停止处理。--status-page
并停止处理。根据redirect
参数执行重定向:
# 当请求 http://localhost:8080/redirect/www.example.com时,重定向到https://www.example.com
ehfs -l 8080 -r /path/to/share --redirect '#/redirect/(.*)#https://$1'
访问静态页面URL无须包含.html
后缀:
.html
后缀的URL重定向到不包含的.html
后缀的URL至带有后缀ehfs -l 8080 -r /path/to/share --redirect '#(.*)\.html#$1' --rewrite-post '#^.*/[^/.]+$#$0.html'
指定404状态页文件:
ehfs -l 8080 -r /path/to/share --status-page '#404#/path/to/404/file'
拒绝显示关键性文件或目录,返回403状态:
ehfs -l 8080 -r /path/to/share --return '#.git|.htaccess#403'
至少需要Go 1.18版本。
go build main.go
会在当前目录生成"main"可执行文件。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。