特定目录上的Apache虚拟主机

时间:2011-07-28 21:18:46

标签: zend-framework apache-config

我需要我的网站在我的zend应用程序的特定目录上拥有一个虚拟主机。当用户输入www.example.com时,它应该转到普通文档根目录但是当用户导航到www.example.com/cms时,它应该转到/var/www/cms/public,其.htaccess文件是这样的:

SetEnv APPLICATION_ENV development

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

在localhost上,我将这些行添加到/etc/apache/httpd-vhosts.conf

NameVirtualHost *:80
<VirtualHost  *:80>
   DocumentRoot "/var/www/cms/public"
   ServerName persian_literature
   # This should be omitted in the production environment
   SetEnv APPLICATION_ENV development
   <Directory "/var/www/cms/public">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>
</VirtualHost>

现在http://localhost/转到/var/www/cms/public,一切正常。我的问题是如何更改代码上方的更改,强制http://localhost/成为普通目录根(因此我可以使用其他应用程序)和http://localhost/cms作为虚拟主机?

2 个答案:

答案 0 :(得分:3)

虚拟主机在主机名/域名级别完成,而不是在目录级别完成。您可以使用别名通过添加

将URI / cms指向服务器上的其他目录
Alias /cms /var/www/cms/public
<。>在.conf文件中(这在.htaccess中不起作用)

答案 1 :(得分:0)

也许符号链接(符号链接)?你当然还应该参加。你必须把配置(vhost配置,我认为,也许.htaccess)放入apache应该遵循符号链接。