【问题标题】:.htaccess Apache on cPanel only working in some casescPanel 上的 .htaccess Apache 仅在某些情况下有效
【发布时间】:2009-08-20 19:34:28
【问题描述】:

我正在使用 Zend 框架,所以我正在引导进入一个名为 index.php 的文件。自然,我不希望图像被引导,所以我添加了一个 .htaccess 文件。这是它的样子

/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 / etc结尾,则将请求发送到index.php。它在我的本地主机上工作得很好,但是当我开始真正把它放到网上时,它就不行了。它只是将所有内容路由到 index.php,而不管请求是否结束。当 mywebsite.com/images/wizard.gif 应该只显示图片时,它会尝试加载图像控制器,这不是我想要的。

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

【问题讨论】:

  • 尝试请求您的托管服务提供商配置 .htaccess 和覆盖。如果它们不允许您使用 .htaccess 覆盖某些配置,则可能会导致意外行为。此外,也许他们不像您那样支持重写。他们使用与您相同的 Apache 版本吗?

标签: apache zend-framework .htaccess


【解决方案1】:

如果您想尝试一下,这是我的 .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。否则它将提供对文件/目录的直接访问

【讨论】:

    猜你喜欢
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多