好吧,我几乎在Htaccess上有这个
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index2.php?url=$1
我正试图在php文件中执行以下
mime_content_type('Doggy.png')
并返回错误,指出找不到文件的路径,我很确定它确实存在, 试图找出错误可能是什么我终于认为它是htaccess。
有人可以帮我解决这个问题吗?
先谢谢你。
答案 0 :(得分:0)
不,这不是你的.htaccess规则。那些只将 HTTP请求重写为文件执行规则。一旦你的PHP执行,它们就不再具有任何影响力了。
问题只是文件Doggy.png
相对于执行此命令的文件不存在 。该文件必须与index2.php
位于同一目录中,假设该文件包含行mime_content_type('Doggy.png')
。否则,您需要使用相对路径,例如mime_content_type('../Doggy.png')
或mime_content_type('img/Doggy.png')
。
答案 1 :(得分:0)
正如我们已经建立的那样,问题不在于重写规则。
实际上重要的不是文件的相对位置,而是图像文件相对于工作目录的位置。
例如,如果您的目录结构是:
/
/index.php
/inc/imagelib.php
/inc/Doggy.png
并且您正在使用imagelib.php
对Doggy进行操作,但它实际上是来自index.php
的 ,您的工作目录是/
,然后, 尽管位于同一文件夹,但您需要将文件称为inc/Doggy.png
。
工作目录可能会发生变化,具体取决于您在程序中的入口点(如果是Web应用程序 - 最初获取请求的文件在哪里),或者(如果命令行),执行命令时你在shell中的哪个位置。
为避免相对路径出现问题,我建议使用绝对路径。
所以(假设与前一个例子中的场景相同),在imagelib.php
中你需要像这样构建图像路径的路径:
`$absolute_path = dirname(__FILE__)."/Doggy.png"`