1

我有一个问题,我试图通过带有 target=blank 的锚链接在新窗口中简单地显示我的图像文件夹中的图像。

我将重写规则添加到公共文件夹 .htaccess 中,如以下帖子中所述:Zend keep front controller from blocking image requests但它仍然给我如下错误并且无法弄清楚原因。

页面中使用的所有其他图像都可以正常显示,只有链接为:

<a href="/images/balloon.jpeg" target="_blank">Balloon</a> 

异常消息是

Exception information:

Message: Invalid controller specified (images)
Stack trace:

#0 /home/euphoria/public_html/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /home/euphoria/public_html/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 /home/euphoria/public_html/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#3 /home/euphoria/public_html/public/index.php(25): Zend_Application->run()
#4 {main}  

Request Parameters:

array (
'controller' => 'images',
'action' => 'profile_uploads',
'module' => 'default',
)  

我的公用文件夹 .htaccess 是

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php
RewriteRule ^.*$ index.php [NC,L]

我的图像文件夹中有另一个 .htaccess 文件,通过使用图像文件来停止 php 执行,其内容是

php_flag engine off

Zend 尝试重定向到“图像”控制器的上述问题仅在我将上述 .htaccess 添加到图像文件夹时才开始发生。

当我删除具有“php_flag engine off”规则的 .htaccess 时,问题消失了

图像及其文件夹是 CHMOD 777,并且该站点位于共享托管环境中的自己的域中。(相对于子域)

非常感谢

4

1 回答 1

1

并且您确定在您的 DOCUMENT_ROOT 文件夹中有一个文件夹“images”,并且它包含一个名为“balloon.jpeg”的图像?

第二个重写规则本质上是无用的。

  1. 它不会检测到您的“jpeg”图像,它只会检测到“jpg”图像。
  2. 只有当第一条规则和所有 RewriteCond 行无法检测到您请求的资源是服务器上实际存在的文件时,才会达到此规则。
  3. 尽管如此,第三条规则最终还是会发生,因为第二条规则没有被标记为“最后评估的规则”。

把它扔掉。Zend 框架的标准重写工作。如果您的情况不是这样,那么您做错了什么,很可能您没有将图像放在它所属的位置。

于 2012-12-09T21:06:44.773 回答