我建立与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和干扰。这可能是为什么你有另外的端口上的成功。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top