不喜欢广告? 去 无广告 今天
Apache httpd 配置格式化器
开发人员联网
广告 移除?
广告 移除?
指导
Apache httpd 配置格式化器
粘贴一个混乱的 Apache 配置 httpd.conf, apache2.conf, 或者 sites-available/*.conf 片段,获取一个正确缩进和标准化的配置。格式化器会 <VirtualHost>, <Directory>, <Location>, <IfModule>,以及其他容器标签来计算正确的嵌套深度,保留你的注释和空行,并可将指令大小写标准化,使所有指令保持一致。结构视图能快速概览每个虚拟主机,验证器会在你重新加载 Apache 之前标记不匹配或未闭合的区块标签。 servername, SERVERNAME,并且 ServerName 将你的 Apache 配置粘贴到输入框中——一个完整的
如何使用
- ,一个单独的
httpd.conf区块,或任何片段。<VirtualHost>选择缩进样式(2 个空格、4 个空格或制表符)和指令大小写模式(保留、PascalCase 标准化或小写)。 - 标准化注释
- 切换 以确保在 后添加一个空格,如果你希望在每个区块内填充列。
#, 合并多个空行,并且 对齐指令值 复制格式化后的输出,或将其下载为 - 。使用结构视图确认你的虚拟主机布局,并使用验证器来发现不匹配或未闭合的区块标签。
httpd.conf– 通过
特征
- 块感知缩进 ,以及其他容器标签来追踪嵌套结构。
<VirtualHost>,<Directory>,<Location>,<Files>,<FilesMatch>,<IfModule>,<Limit>,<RequireAll>指令大小写标准化 - – 可选地将指令重写为标准的 PascalCase( )或转换为小写。
ServerName,DocumentRoot,RewriteEngine支持换行续行 - – 将以 结尾的行连接起来,使被换行的指令保持在一条逻辑行上。
\注释与空行保留RewriteRule或SSLCipherSuite– 保持你的 - 注释原位,可选择标准化哈希符号后的空格,并合并连续的空行。 结构视图
# ...– 每个区块的嵌套大纲,提取关键细节( - )以便快速浏览。 – 标记不匹配的打开与关闭标签(例如,以
ServerName,DocumentRoot,Listen,ProxyPass关闭),未闭合的区块,多余的关闭标签,以及重复的 - 验证 值。
<Directory>片段库</Location>– 提供 HTTP/HTTPS 虚拟主机、HTTPS 重定向、反向代理、PHP-FPM 处理器、mod_rewrite 强制 HTTPS、mod_deflate 压缩、浏览器缓存、安全头和基本身份验证的即插即用模板。ServerName指令参考 - – 常见指令和容器标签的快速参考。 – 完全在浏览器中运行。配置内容永远不会上传。
- httpd.conf 和 .htaccess 文件有什么区别? httpd.conf(以及 sites-available/ 下的每个站点文件)是主服务器配置,在 Apache 启动时仅解析一次。.htaccess 文件是目录级别的覆盖配置,当 AllowOverride 允许时,Apache 会在每次请求时重新读取。两者使用相同的指令语法,但 .htaccess 仅能包含允许目录范围的指令,且使用它相比将相同规则放入 块中的主配置,会有明显的性能开销。
- 隐私 Apache 指令名称是否区分大小写?
常问问题
-
不。像 ServerName、servername 和 SERVERNAME 这样的指令名称都是有效的且等效的。Apache 文档使用 PascalCase 作为标准形式,这也是大多数风格指南和配置检查工具所期望的形式。然而,指令参数通常区分大小写(例如 Linux 文件系统路径、正则表达式、环境变量名称等)。
Apache 如何决定由哪个 VirtualHost 服务一个请求?
-
Apache 首先根据 标签中的 IP 地址和端口进行匹配(例如 *:443)。在匹配相同地址和端口的虚拟主机中,它接着将请求的 Host 头与 ServerName 和 ServerAlias 进行比对。如果没有任何匹配,则第一个列出的 VirtualHost 会成为默认配置。这就是为什么在真实生产服务器上,ServerName 必须明确且唯一。
Directory、Location 和 Files 块之间的评估顺序是什么?
-
Apache 按定义顺序合并这些部分: 和 .htaccess 首先,然后是 和 ,最后是 和 。在每个组内,非正则表达式部分按路径最短到最长的顺序处理,然后是正则表达式变体按源顺序处理。 最后执行,因此一个 块可以覆盖其上方 块中设置的指令。
为什么区块标签使用 ... 而不是像 Nginx 那样的大括号?
-
Apache 的配置语法比 Nginx 早了大约十年,并基于 SGML/HTML 构建,其中容器范围使用成对的开闭标签表示。Nginx 选择了类似 C 语言的括号风格以实现紧凑性。两种语法表达相同的概念——一个用于限定子指令集的指令。但 Apache 的标签对使得不匹配的闭合标签更容易被识别,因为关闭标签必须明确命名要关闭的区块。
将你的 Apache httpd / VirtualHost 配置粘贴到这里...
-
Apache httpd 配置格式化器 1
Apache httpd 配置格式化器
