0

我的问题是。

我的应用程序在 zend 框架中有一个图像文件夹和裁剪技术,因此当请求裁剪的图像并且之前找到它时,htaccess 将通过调用裁剪模型来处理图像

the file requested   is : http://localhost/cmstest/public/contents/userdata/images/100X100/163.png

但服务器无法读取正确的控制器

htacces 代码在这里

    Options +FollowSymLinks +ExecCGI

<IfModule mod_rewrite.c>

RewriteEngine On
    RewriteCond  %{REQUEST_FILENAME} !-d 
    RewriteCond  %{REQUEST_FILENAME} !-f

    RewriteRule ^(.*)/(.*)  ../../index/index/app/storage/image/$2/crop/$1 [QSA,L]

</IfModule>

显示的错误是

An error occurred
Page not found
Exception information:

Message: Invalid controller specified (contents)
Stack trace:

#0 /Applications/XAMPP/xamppfiles/htdocs/zend/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /Applications/XAMPP/xamppfiles/htdocs/zend/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 /Applications/XAMPP/xamppfiles/htdocs/zend/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#3 /Applications/XAMPP/xamppfiles/htdocs/cmstest/public/index.php(36): Zend_Application->run()
#4 {main}  

Request Parameters:

array (
  'controller' => 'contents',
  'action' => 'userdata',
  'images' => '100X100',
  'module' => 'frontend',
)  

请帮我 :(

4

3 回答 3

0

如果您的要求是发生某些事情 - 调用特定的控制器/动作 - 仅在找不到 url 时,那么实现该方法的一种方法是执行检查ErrorController::errorAction()并转发到执行所需处理的控制器/动作.

具体来说:

  1. ErrorController::errorAction()中,检查导致您出现的错误是否为 404 错误。

  2. 如果是这样,请检查(可能在preg_match()$request->getRequestUri())请求的 url 是否属于您希望通过调整大小例程(IndexController::resizeAction()或类似方法)处理的类型。

  3. 如果是这样,则执行 a$this->_forward('resize', 'index')以便您的调整大小例程可以执行调整大小,保存调整大小的图像(以便下次无需调整大小即可提供),并发送现在调整大小的图像(带有正确的图像标题) .

于 2012-12-25T11:53:07.197 回答
0

你有一个 module/frontend/Controller/contentsController.php 吗?在这个文件中有一个 userdataAction 方法?

需要更多信息来帮助您更轻松。

于 2012-12-25T09:41:45.203 回答
0

您的重写规则永远不会与请求的 url 匹配: localhost/cmstest/public/contents/userdata/images/100X100/163.png 如您所料

使用此规则:^(. )/(. ),您正在编写请求的 url 以 ^ 字符开头,后跟斜杠和其他字符。

在这里,您的 URI 是 public/contents/userdata/images/100X100/163.png。所以它永远不会像你期望的那样匹配。

尝试类似:

RewriteRule ^public/contents/userdata/images/(.*)/(.*)  ../../index/index/app/storage/image/$2/crop/$1 [QSA,L]

希望对您有所帮助。

于 2012-12-25T11:48:40.370 回答