我必须管理几个网站。为了测试,我有一个本地(localhost
)副本和一个在线副本。
cms引擎http://Pyrocms.com有一个多站点管理器,您输入一个域。在浏览器中输入域名,它为存储在中央数据库中的请求站点提供网站。
在线这种方法很好但在本地却没有,我最终不得不输入
localhost/silo1/myclient1/
我希望能够输入
myclient1.test
我想到的第一件事就是 lmhost 文件,但我解释说我无法映射到子目录,只有IP地址。
以下是我尝试在Windows7的主机文件中执行的操作,它没有用,只是在我输入127.0.0.1
时指示我mywebsite2.test
。
主页文件 - AKA LMHOST
File stored @ #C:\Windows\System32\drivers\etc
lmhost/host file
127.0.0.1 mywebsite1.test
127.0.0.1/mywebsite2/ mywebsite2.test **#I want to do something like this**
技术:
操作系统:Windows7服务器:WAMP 2
(Apache with Mod Rewrite on)
答案 0 :(得分:2)
如果我理解正确,那么你要完成的唯一方法是......
编辑HOSTS文件(不是LMHOSTS)以将伪域名解析为环回地址(127.0.0.1)。
127.0.0.1 myclient1.test
127.0.0.1 myclient2.test
然后使用带有mod_rewrite条件和规则的.htaccess文件来匹配主机头(对于每个不同的网站),并在内部将请求重写到正确的子文件夹/子URL。
RewriteCond %{HTTP_HOST} ^myclient1\.test$ [NC]
RewriteRule ^/*(.*)$ http://localhost/silo1/myclient1/$1 [NC]
RewriteCond %{HTTP_HOST} ^myclient2\.test$ [NC]
RewriteRule ^/*(.*)$ http://localhost/silo2/myclient2/$1 [NC]
或者如果你想进行完全重定向(而不是内部重定向)......
RewriteRule ^/*(.*)$ http://localhost/silo1/myclient1/$1 [R=301,NC]
答案 1 :(得分:1)
编辑HOST文件。
127.0.0.1 myclient1.test
127.0.0.1 myclient2.test
在httpd.conf文件中我添加了
NameVirtualHost *:80
<VirtualHost *:80>
ServerName myclient1.test
DocumentRoot C:\wamp\www\silo1\myclient1\
</VirtualHost>
<VirtualHost *:80>
ServerName myclient2.test
DocumentRoot C:\wamp\www\silo1\myclient2\
</VirtualHost>