2014-01-20 65 views
0

在我的Zend Framework的项目,我有以下基本URL无法在Zend框架访问控制器诺雷行动

http://domain/~myFolder 

如果我访问它像这样,我也没有问题访问的indexAction但如果我尝试以明确的方式访问它:

http://domain/~myFolder/index 

我不能,我可以访问不同的控制器或操作。 它总是说

/public/index.php was not found on this server. 

如何我可以访问我的项目中不同的控制器和行动?我需要添加路线吗?

+0

检查'public'的文件夹权限,如果.htaccess存在并且是可写的。默认情况下,apache将'.php'添加到不存在的文件(如“index”),如果它找不到,它会抛出一个404 – DanFromGermany

+0

,我该如何解决这个问题? .htaccess只能读取 – patentul

+1

不需要对.htaccess文件进行写入权限。你的问题是由于你的脚本位置。你应该在'rewriteEngine On'下面添加这行'RewriteBase /〜myFolder /'。不过,为您的新环境创建虚拟主机是一种很好的做法。 –

回答

0

更改根据.htaccess文件的内容...

来源:http://framework.zend.com/manual/1.12/en/zend.application.quick-start.html

您可能会注意到,应用环境的恒定值查找 环境变量“APPLICATION_ENV”。我们建议在您的Web服务器环境中设置此 。在Apache中,您可以在 您的虚拟主机定义或您的.htaccess文件中进行设置。我们建议 以下内容为你的公共/ .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] 
-1

我能够通过将控制器名称后index.php访问控制器页:

即:yoursite/public/index.php/ControllerName

它在我的情况下工作。