2009-08-20 75 views
0

我使用的是Zend Framework,所以我引导到一个名为index.php的文件中。当然,我不希望图像被引导,所以我添加了一个.htaccess文件。这里是什么样子.htaccess cPanel上的Apache只能在某些情况下工作

/application 
/library 
/public (this is the root of the site) 
    /images 
    /js 
    .htaccess 
    index.php 

这是什么写在我的.htaccess:

RewriteEngine on 
RewriteRule !\.(js|ico|gif|jpg|png|mp3|mov|css)$ index.php 

这基本上是说,如果它不.js文件/ .ICO /等结尾,然后发送请求index.php。它在我的本地主机上工作得很好,但是当我真正把它放到网上时,它不会。它只是将所有内容都路由到index.php,而不管请求的结束。当mywebsite.com/images/wizard.gif应该只显示图片时,它会尝试加载图像控制器,这不是我想要的。

可能会出现什么问题?我知道它正在读取.htaccess。它读取我的正则表达式错误吗?为什么一个Apache服务器读取错误,而另一个读取它正确?任何帮助都会很棒。

+0

尝试请求配置您的托管服务提供商有关.htaccess和覆盖。如果他们不允许您使用.htaccess重写某些配置,那可能会导致意外的行为。 另外,也许他们不支持你所做的重写。他们是否像你一样使用相同的Apache版本? – nash 2009-11-09 11:20:53

回答

0

这是我的.htaccess如果你想给它一个尝试:

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

基本上它进行检查,以确保该请求是不是一个目录,符号链接或真实的文件,然后将其发送到index.php文件。否则,它将提供对文件/目录的直接访问

+0

它似乎有同样的问题。我一定在做别的事...... – Ethan 2009-08-21 00:15:56

相关问题