Zend App在部署后无法运行。只能访问主页

时间:2012-09-07 13:42:53

标签: .htaccess zend-framework deployment webserver web-deployment

我可以访问主页并可以从数据库中获取数据。一切似乎都好。但是当我尝试从我的应用程序转到另一个页面时,我被重定向到404 error page。当悬停链接时,我的浏览器左下角显示的URL似乎没问题。它是应该的。

我尝试更改服务器上的.htaccess文件:

# Do not remove this line, otherwise mod_rewrite rules will stop working

RewriteBase /

致:

# Do not remove this line, otherwise mod_rewrite rules will stop working

RewriteBase /

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

但它又失败了。尝试了不同的组合。例如,将RewriteBase /更改为RewriteBase /projectname/public/RewriteBase /projectname/。仍然没有成功。

当然,我不确定.htaccess是否是问题所在。可能是不同的东西,但我不知道是什么......

在localhost上,应用程序正常运行,一切正常。

编辑我尝试了几次更改后,终于让它工作了。

以下是解决方案:

我按原样留下了服务器的.htaccess文件。所以它只有RewriteBase /。 然后在我的.htaccess文件的第一行(位于projectname/public文件夹中)我添加了这个:

RewriteBase /projectname/public

现在一切正常。

2 个答案:

答案 0 :(得分:1)

<强>解决方案

按原样保留服务器的.htaccess文件。所以其中只有RewriteBase /。 然后在第一行应用程序的.htaccess文件(位于projectname/public文件夹中)中添加以下行:

RewriteBase /projectname/public

答案 1 :(得分:0)

您的域名(您的网址)必须指向/projectname/public/,您不需要在.htaccess文件中添加任何内容。 例如,这是我自己的.htaccess文件(通过Zend_Tool创建项目时生成)。我不需要RewriteBase! :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

SetEnv APPLICATION_ENV development