我不知道这是否是最好的方法,但这是一种适合我的方式。
阿帕奇virtualhosts.conf(你可以用一些修改,把这个在httpd.conf):
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/apps
ServerName apps.domain.com:80
ServerAlias www.apps.domain.com
UserDir Disabled
ErrorLog logs/domain_error_log
Options FollowSymLinks
<Directory /var/www/html/apps/subdirectory/>
#same stuff in standard zf2 .htaccess file
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</Directory>
位置的应用程序:
/var/www/zf2_app
符号链接:
ln -s /var/www/zf2_app/public/ /var/www/html/apps/subdirectory
有几件事要注意:Directory指令是基于文件系统路径而不是URI;这是Apache文档中的一行,我忘记了,因为如果您在VirtualHost指令中使用mod_rewrite,则它基于URI。此外,必须启用Options FollowSymLinks才能使符号链接工作,并使mod_rewrite在目录指令中工作。
我重新装的httpd后,我就能够浏览到使用我ZF2应用: apps.domain.com/subdirectory/module
这让我保持定期ZF2骨架应用结构。另外,通过将它们放在一起,我可以使用git(或其他源代码控制)来推送,而无需分割。
所以你想要保持骨架结构,但一个简短的网址,是所有? – Sam
是的,在一个子目录 – Marty
那么基本上它并不重要在哪里存储文件,你只需要配置你的Apache来设置你的'VirtualHost'到公共目录。然后,你需要做的就是调用'domain.com'。我不喜欢linux,所以我不能给你说明,但对我来说,这似乎是你正在寻找的所有 – Sam