我不知道這是否是最好的方法,但這是一種適合我的方式。
阿帕奇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