1

我必须管理一些网站。为了测试,我有一个本地 ( localhost) 副本和一个在线副本。

cms 引擎http://Pyrocms.com有一个多站点管理器,您输入一个域。在浏览器中输入域名,它会为存储在中央数据库中的请求站点提供网站服务。

在线这工作正常,但在本地却不行,我最终不得不输入

localhost/silo1/myclient1/

我希望能够打字

myclient1.test

我首先想到的是lmhost文件,但我释放我无法映射到子目录,只能映射到 IP 地址。

以下是我在 Windows7 的主机文件中尝试做的事情,它没有用,它只是引导我127.0.0.1 进入mywebsite2.test.

主机文件-又名 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

  • (启用了 Mod Rewrite 的 Apache)

4

2 回答 2

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]
于 2012-12-07T16:23:46.713 回答
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>
于 2012-12-08T03:33:18.433 回答