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

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 に答える
0

URLが見つからない場合にのみ、特定のコントローラー/アクションが呼び出されるという要件がある場合、それを実装する1つの方法は、チェックをErrorController::errorAction()実行し、必要な処理を実行するコントローラー/アクションに転送することです.

具体的には:

  1. ErrorController::errorAction()、表示されたエラーが 404 エラーであることを確認します。

  2. その場合は、要求された URL がサイズ変更ルーチン (など)で処理したいタイプのものであることを (おそらく で)preg_match()チェックしてください。$request->getRequestUri()IndexController::resizeAction()

  3. その場合は$this->_forward('resize', 'index')、サイズ変更ルーチンがサイズ変更を実行できるように を実行し、サイズ変更された画像を保存し (次回はリサイズを必要とせずに提供されるように)、サイズ変更された画像を送信します (正しい画像ヘッダーで完了します)。 .

于 2012-12-25T11:53:07.197 に答える