重写问题,/ controller / action而不是/folder/file.php

时间:2011-03-21 12:20:14

标签: zend-framework rewrite vhosts

我有一个调用KCFinder的脚本。

window.open('/kcfinder/browse.php?type=files', ...);

它必须打开一个包含KCFinder的窗口,但是当我点击“浏览器”按钮时,它会产生错误:

  

“未捕获的异常   'Zend_Controller_Dispatcher_Exception'   消息'无效的控制器   指定(kcfinder)'in   /home/vhosts/vonline_admin/library/Zend/Controller/Dispatcher/Standard.php   在第248行“

我理解这个错误。它说控制器“找不到kcfinder”,但kcfinder不需要控制器,它只是一个路径。奇怪的是,我在本地成功运行网站,但当我把它放在托管上时,它失败了。

我认为这与重写问题或路由有关,但我不知道如何修复它。

Vhost:/usr/local/apache2/conf/vhosts/something_admin.conf

  

ServerName admin.something.com

    ServerAdmin foo@boo.com
    DocumentRoot /home/vhosts/something_admin/www

    SetEnv APPLICATION_ENV development

    TraceEnable off

    <Directory /home/vhosts/something_admin/www>
            Options -Indexes -Includes -ExecCGI -FollowSymLinks
            AllowOverride None
    </Directory>

    RewriteEngine on
    RewriteRule !\.(js|ico|gif|jpg|png|css|swf|txt|htm|html|xml)$
     

的index.php

.htaccess在www:

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

1 个答案:

答案 0 :(得分:1)

我在htaccess文件和我的文件之间可以看到的唯一区别在于RewriteRules;我有一个星号:

RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]