题
我建立与Zend框架的Web应用程序,我需要我的应用程序指向应用程序的“公共”文件夹:
所以基本上当我打电话http://localhost/myapp
它应该显示http://localhost/myapp/public/
我创建称为MYAPP成虚拟主机文件/ etc / apache2的/位点可用/:
<VirtualHost *:80>
DocumentRoot /var/www/myapp/public/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/myapp/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
但是,这是行不通的。当我打电话的http://本地主机/ MYAPP ,它显示的应用程序的目录结构,当我点击“公共”文件夹,然后它会显示我想在默认情况下显示的内容... 之前我从来没有配置虚拟主机,这就是只要我有关于它的教程了。
解决方案 2
好,我发现了一种莫名其妙...我不认为这是必要的正确的/最好的方式,但...
在httpd.conf(在apache2目录):
Listen 10089
<VirtualHost *:10089>
DocumentRoot "/var/www/myapp/public"
<Directory "/var/www/myapp/public">
Order allow,deny
Allow from all
AllowOverride all
</Directory>
</VirtualHost>
我的应用程序现在可访问通过本地主机:10089 使Apache中重写国防部后,我添加了必要的.htaccess,一个在我的应用程序的根目录,重定向一切的index.php(Zend Framework的支持友好的URL导航和这样工作):
RewriteEngine on
RewriteRule .* index.php
和我的公共文件夹内的第二.htaccess文件让人们访问.JPG,.ICO等文件,而不是被重定向到指数的一切:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
希望这将帮助一些!
其他提示
在你的第一个上市,你必须为目录标记不同的值,留下过“公共”完全。还有一个尾随斜线后的文档根值“公”,但你的第二次尝试删除。不知道,做了一个差异,但我相信它的建议,你不包括尾部斜杠。
另外,只是想知道......你在本地机器上运行呢?我有麻烦与Skype想使用端口80,如果我开始跑步,我的Apache服务器之前。 Skype将使用不同的端口,如果已经使用80。如果不是Skype公司,有可能是另一个应用程序,是一个使用端口80和干扰。这可能是为什么你有另外的端口上的成功。