0

好吧,我在 Htaccess 上有这个

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index2.php?url=$1

我正在尝试在 php 文件中执行以下操作

mime_content_type('Doggy.png')

它返回一个错误,说找不到文件的路径,我很确定它确实存在,试图找出错误可能是什么,我最终认为它是 htaccess。

有人可以帮我解决这个问题吗?

提前谢谢你。

4

2 回答 2

0

正如我们已经确定的那样,问题不在于重写规则。

实际上重要的不是文件的相对位置,而是图像文件相对于工作目录的位置。

例如,如果您的目录结构是:

/
/index.php
/inc/imagelib.php
/inc/Doggy.png

并且您正在从 中对 Doggy 进行操作,imagelib.php但它实际上包含index.php并且您的工作目录/inc/Doggy.png

工作目录可能会改变,这取决于您在程序中的入口点(如果是 Web 应用程序 - 最初收到请求的文件在哪里),或者(如果是命令行),您在 shell 中的位置执行命令时。

为了避免相对路径出现问题,我建议使用绝对路径。

因此(假设与上一个示例中的场景相同),imagelib.php您需要像这样构造图像路径的路径:

`$absolute_path = dirname(__FILE__)."/Doggy.png"`
于 2012-07-04T08:03:47.430 回答
0

不,这不是您的 .htaccess 规则。那些只是将HTTP 请求重写为文件执行规则。一旦您的 PHP 执行,它们就不再有任何影响。

问题只是相对于执行此命令的文件而言,Doggy.png该文件不存在。该文件必须与 位于同一目录中,假设该文件包含该行。否则,您需要使用相对路径,例如or 。index2.phpmime_content_type('Doggy.png')mime_content_type('../Doggy.png')mime_content_type('img/Doggy.png')

于 2012-07-03T14:48:24.310 回答