我需要我的网站在我的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
作为虚拟主机?
答案 0 :(得分:3)
虚拟主机在主机名/域名级别完成,而不是在目录级别完成。您可以使用别名通过添加
将URI / cms指向服务器上的其他目录Alias /cms /var/www/cms/public
<。>在.conf文件中(这在.htaccess中不起作用)
答案 1 :(得分:0)
也许符号链接(符号链接)?你当然还应该参加。你必须把配置(vhost配置,我认为,也许.htaccess)放入apache应该遵循符号链接。