语法 ServerPath URL-path
说明 为兼容性不好的浏览器访问基于域名的虚拟主机保留的URL路径名
要了解ServerPath 的作用,就不得不说一下http的host头信息
HTTP/1.1要求在请求的时候发送Host头域,值是资源的Intenet主机和端口号,也就是说你访问xxx.bbb.com:8080/aaa/bbb的时候,host头信息将xxx.bbb.com:8080。
但是老的浏览器不会发送这个host头信息。
于是在apache的虚拟服务器中,比如
<VirtualHost 172.20.30.40>
DocumentRoot /www/subdomain/sub1
ServerName www.sub1.domain.tld
ServerPath /sub1/
RewriteEngine On
RewriteRule ^(/sub1/.*) /www/subdomain$1
# ...
</VirtualHost>
<VirtualHost 172.20.30.40>
DocumentRoot /www/subdomain/sub2
ServerName www.sub2.domain.tld
ServerPath /sub2/
RewriteEngine On
RewriteRule ^(/sub2/.*) /www/subdomain$1
# ...
</VirtualHost>
因为对于虚拟主机来说,两个IP是相同的。当通过
www.sub1.domain.tld
或者
www.sub2.domain.tld
访问的时候,同时满足了两个虚拟主机,如果没有发送host过来,那么自然无法识别应该访问哪个虚拟主机。
于是这个时候ServerPath 起作用了。
如果发送了host,只要根据host的值和ServerName 比较一下而已,也就是说
www.sub2.domain.tld下面的任何路径都将映射到第二个虚拟主机。
但是没有发送host的情况就不行,这个时候只能根据路径来寻找了。
htp://www.sub1.domain.tld/sub1/符合第一个虚拟主机,于是进入第一个虚拟主机。
另外一点需要说明的是,如果没有发送host的主机,那么不管你是http://www.sub2.domain.tld/sub1/
还是http://www.sub1.domain.tld/sub1/
的请求,都将被第一个虚拟主机所处理。因为没有发送host,只能通过路径来发现,两个域名虽然不同,但是他们的路径都只满足第一个而不是第二个虚拟主机。
分享到:
相关推荐
- 查询已加载的程序文件路径,返回"Loaded program: <path to loaded program file>"或"No program loaded"。 10. **popup ** - 显示带有指定文本的弹窗,若文本存在选定语言文件中,将被翻译成相应语言,返回...
2. Location 块可以根据 path 指令来进行匹配,如 location /uri-string { … }。 3. Location 块可以根据正则表达式来进行匹配,如 location ~ ^/uri-string { … }。 Nginx 是怎样根据优先级来选择 Server 块的:...
setenv serverip 192.168.7.28 ``` #### 设置启动命令 通过`setenv bootcmd`命令来定义具体的启动过程: ```bash setenv bootcmd 'nand read 0x30008000 0x40000 0x1c0000 ; go 0x30008000' ``` 该命令中,`nand ...
#setenv serverip 192.168.7.28 ``` - **设置启动命令**:定义启动时执行的命令序列。 ```sh #setenv bootcmd "nand read 0x30008000 0x40000 0x1c0000; go 0x30008000" ``` - **设置启动参数**:这些参数将...
<myControls:MyCustomControl runat="server" /> ``` #### @Assembly @Assembly指令用于指定页面或用户控件所在的程序集,通常用于支持跨应用域的引用。 ```asp ``` #### @OutputCache @OutputCache指令用于配置...
在这个入门课程中,我们重点关注JSP(JavaServer Pages)的指令使用,特别是page指令和include指令。 JSP指令是JSP页面的元数据,用于配置页面的全局特性。Page指令是JSP中最为常见的指令之一,它允许开发者定义JSP...
### SVN基本指令详解 #### 目录架构与用途解析 Subversion(SVN)作为一款广泛应用的版本控制系统,其目录结构通常包含`Trunk`、`Tags`和`Branches`三大核心部分。 - **Trunk**: 被视为开发的主干道,所有的主要...
打开网页后,你会看到三种操作模式:browse、read 和 write,每种模式下都有对应的 JSON 文件格式示例和 curl 指令。 curl 是一个命令行工具,用于在命令行中发送 HTTP 请求。如果你还没有安装 curl,可以从 ...
TOKEN = Bot's token PREFIX =指令前缀IP = server ip rcon_pw = rcon_password rcon_port = rcon_port server_path =伺服器启动档路径ex: D:\server\start.bat console_channel = Discord频道ID使用方式:运行...
JSP(JavaServer Pages)是一种动态网页技术,允许开发者将Java代码嵌入到HTML页面中,以此来创建动态内容。在JSP页面中,include指令是一个重要的组成部分,它用于在JSP页面编译之前将另一个文件的内容插入到当前...
--#include virtual="/path/to/file.htm"-->` 从指定的虚拟路径包含文件。 **注意事项**: - `file` 属性通常用于包含与当前文件位于同一目录下的文件。 - `virtual` 属性可以指定文件的虚拟路径,便于跨目录...
7. **运行测试**:连接你的移动设备或者启动模拟器,然后通过测试脚本向运行中的Appium Server发送指令,执行自动化测试。 8. **查看结果**:Appium Server会记录测试的详细日志,你可以通过这些日志分析测试过程和...
例如,`scp user@server:/path/to/result.txt local_path`将远程文件复制到本地。 3. **实时流**:对于持续的输出,例如日志流,客户端可以使用`tail -f`与`ssh`结合,实时查看远程文件的变化。 总结来说,Linux...
- 当使用include指令包含其他JSP页面或文件时,如果存在同名的局部变量,如path或basepath,会导致编译错误。 - 解决这种命名冲突的方法有: - 改变被包含文件中的局部变量的名称,以避免与包含页面的变量名称...
而Azkaban Executor Server则负责实际的任务执行,它接收Web Server的指令,运行作业并返回执行结果。 配置Azkaban Web Server通常包括以下几个步骤: 1. **环境配置**:确保Java环境已安装,Azkaban依赖Java运行...
<%@ include file="path/to/file.jsp" %> ``` **示例**: ```jsp <!-- Main content goes here --> ``` #### Page指令 Page指令用于设置JSP页面的各种属性,如语言、编码方式等。 **JSP语法**: ```jsp ``` **...
### Linux学习笔记v1.0 - 周立功开发板平台使用指令合集 #### 1.4 Makefile Makefile 是一个重要的自动化构建工具,用于自动化编译过程,通常用于 C 和 C++ 项目的编译。在《正点原子》I.MX6U嵌入式Linux驱动开发...
本教程将引导你通过基础Linux指令来安装Java Development Kit (JDK) 1.8、Apache Tomcat应用服务器以及MySQL数据库管理系统。以下是详细的步骤和相关知识点。 首先,我们需要安装JDK。JDK是Java编程的基础,提供了...