0

所以很多网络应用程序让客户选择他们自己的子域,即 mycompany.webapp.com

据推测,每个子域都使用同一组文件,并且唯一的子域可能存储为会话对象。那么 URL 重写是如何工作的呢?

如果有人去mycompany.webapp.com,你必须将他们的唯一地址重写为动态页面来设置会话变量,即webapp.com/mypage.php?cusomer=mycompany

但是当你重定向时,你会在 webapp.com/theappdirectory/ 而不是 mycompany.webapp.com/

那么他们是怎么做到的呢?

PS 运行 IIS,但任何服务器的方法都应该相同。对我们来说最重要的是我们不能做 webapp.com/theappdirectory/mycompany/somefile.html,即所有文件都驻留在一个目录中,我们必须以某种方式设置会话变量,同时保持子域被屏蔽。

4

2 回答 2

0

重定向只能在内部发生:

RewriteCond %{HTTP_HOST} ^([^./]+)\.example\.com$
RewriteCond %1 !=www
RewriteRule ^ mypage.php?customer=%1

要进行这项工作,您的服务器/虚拟主机需要配置为接受所有子域(例如,参见基于名称的虚拟主机支持)。

于 2010-05-16T14:07:09.380 回答
0

任何网址(包括子域)都使用 DNS 映射到 IP 地址。

  1. 现在,这些地址可以映射到单独的 Web 服务器,您可以在其中将 documentroot 设置为您想要的任何内容。

  2. 但是当多个域/子域托管在同一台物理机器上时,您的问题是有意义的。如果您使用的是 apache,则可以使用此虚拟主机设置,在逻辑上划分托管在同一服务器上的不同域。它基本上将主机地址(如 x.example.com、y.example.com)或 IP 地址映射到设置初始参数(如 DocumentRoot、PHPAdmin 值)的虚拟主机。

查看http://httpd.apache.org/docs/2.0/vhosts/examples.htmlhttp://httpd.apache.org/docs/1.3/vhosts/了解更多信息

于 2010-05-16T14:23:33.573 回答