我正在使用apache和PHP,我刚刚做了一个cms,现在我想在不同的URL上提供一些演示,但是在相同的域中,例如mydomain.com。
就像这样:
http://www.mydomain.com/demo2 ...
如果这些是我的服务器上对应的实际路径:
/myserver/cms/demo1
/myserver/cms/demo2我不想改变我的cms代码来实现这一点(如果可能的话)
我想到的第一个解决方案是为每个演示购买一个域,并使用虚拟主机将一个演示映射到一个域。我想怎么做都行,但太贵了.
根据Alias的指令,
Alias /demo1/ /myserver/cms/demo1这几乎是完美的,但我仍然遇到了一个问题:$_SERVER['REQUEST_URI']变量被从/修改为/demo1,这不幸地使我的cms混淆了。
我需要一种真正无拘无束的方式来做这件事,比如虚拟主机。
如果你也面临过这个问题,我想听听你是如何处理的。
发布于 2012-04-20 18:15:44
我使用子域(demo1.example.com、demo2.example.com等)使用通配符DNS条目(*.example.com总是解析到同一个主机),这样我就不必对DNS进行任何更改,只需向Apache添加更多虚拟主机即可。
效果很好。
发布于 2012-04-20 18:46:45
对自己的回答:
如果您对这个主题感兴趣,下面是我的工作方式(感谢凹版):
<VirtualHost *:80>
ServerName test.jetdemo
ServerAlias test.jetdemo
DocumentRoot "/Volumes/Mac/projets/jetsites/demo/ecommerce/store1/application/www"
</VirtualHost>
<VirtualHost *:80>
ServerName jetdemo
ServerAlias *.jetdemo
DocumentRoot "/Volumes/Mac/projets/jetsites/demo/"
</VirtualHost>我已经注意到虚拟主机组的顺序很重要:包含通配符( ServerAlias *.jetdemo )的块必须是最后一个,否则它将无法工作!,否则您将不得不删除通配符( ServerAlias jetdemo )。
https://serverfault.com/questions/381638
复制相似问题