我想设置一个这样的服务器
dev.mydomain.com
- dev.mydomain.com/mysite1(别名 /var/html/mysite1)
- dev.mydomain.com/mysite2(别名 /var/html/mysite2)
我想要实现的是让 dev.mydomain.com/mysite1/index.html 从 dev.mydomain.com/mysite1 加载相对 URL,而不是从 dev.mydomain.com 加载。我知道这是默认行为,但可以做些什么吗?也许在位置块中使用一些重写?
谢谢 !
答案1
浏览器决定从服务器请求资源时使用的完整 URL。
假设 webroot 是/var/www/html
服务器上的目录。假设
如果资源的 HTML URL 像这样指定src="/path/to/file"
,则浏览器将发出请求http://example.com/path/to/file
,并且 nginx 将以 的形式发送文件/var/www/html/path/to/file
。
现在,如果浏览器已经加载了 URLhttp://example.com/page1
并且有一个资源链接src="resourcefile"
,那么浏览器就会请求http://example.com/page1/resourcefile
,并且 nginx 会发送 /var/www/html/page1/resourcefile 中的文件。
这意味着您可以通过使用不以 开头的路径相关 URL 来实现您的目标/
。但是,这并不实用。
我建议您为您的开发网站设置子域名(mysite1.mydomain.com 和 mysite2.mydomain.com),并在您的网络服务器上设置新的虚拟主机。