.htaccess - 如何将所有请求重定向到文件,除了使用 Apache 的图像?

标签 .htaccess redirect front-controller

我有一个包含以下内容的 .htaccess 文件:

Options +FollowSymLinks +ExecCGI

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^(.*)$ entryPoint.php [QSA]
</IfModule>

有了这个,我希望所有请求都被重定向到文件 entryPoint.php以便它可以检查它们:
  • 如果没有扩展名,则必须是模块
  • 如果有 .php,那就是黑客攻击
  • 如果它是一个 .png,那么它就是一个“安全”的调用。

    在图像的情况下,我曾经输出标题和 file_get_contents()他们的内容。我发现它比直接阅读要慢一些。

  • 我的问题是:

    如何防止此 .htaccess 调用 entryPoint.php如果有图片引用?

    非常感谢对我已经拥有的代码的额外反馈!

    最佳答案

    据我了解,您想要处理所有非图像抛出您的 php 文件。对?

    如果是这样,那么这就是您需要的:

    Options +FollowSymLinks +ExecCGI
    
    <IfModule mod_rewrite.c>
    
    RewriteEngine On
    RewriteCond %{REQUEST_URI}  !(\.png|\.jpg|\.gif|\.jpeg|\.bmp)$
    RewriteRule (.*)  entryPoint.php [QSA]
    
    </IfModule>
    

    请记住添加以删除您想要的任何图像扩展名!
    如果我误解了,请告诉我纠正我的答案!

    关于.htaccess - 如何将所有请求重定向到文件,除了使用 Apache 的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7060932/

    相关文章:

    apache - url 重写以将 www 重定向到 https 上的非 www

    php - 使用上面目录中的index.php,但包含不同的内容

    php - SilverStripe 3.1+ 使用 PHP 动态更改重定向器的 URL slug

    php - 如何在 PHP 中使用 file_get_contents 修复 404 错误?

    javascript - 无论我尝试什么,请求的资源错误上均不存在 'Access-Control-Allow-Origin' header

    c# - HTTP 重定向 302

    .htaccess - 删除在 .htaccess 中不起作用的 php 扩展

    PHP 将 URI 匹配到模式

    java - 用 Java 实现 Controller 和路由

    jsp - Java 前端 Controller