2

我可以访问主页并可以从数据库中获取数据。那里一切似乎都很好。但是当我尝试从我的应用程序转到另一个页面时,我被重定向到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

现在一切正常。

4

2 回答 2

1

解决方案

保持服务器的 .htaccess 文件不变。所以只有RewriteBase /在里面。然后在应用程序的 .htaccess 文件(位于projectname/public文件夹中)的第一行添加以下行:

RewriteBase /projectname/public
于 2013-01-16T11:43:25.563 回答
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
于 2012-09-29T23:12:05.840 回答