gpt4 book ai didi

php - 未指定输入文件

转载 作者:IT王子 更新时间:2023-10-29 01:04:35 27 4
gpt4 key购买 nike

我在跑 Anchor CMS我刚刚升级到 0.8 版。当我尝试运行安装程序时,出现“未指定输入文件”错误。我相信这很可能是一个 .htaccess 问题,但我不确定正确的设置应该是什么。

我的网站可以查到here .

我的 .htaccess 设置为:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase {base}

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ {index} [L]
</IfModule>

<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>

如果有帮助,我还使用 GoDaddy 作为托管服务提供商。

最佳答案

未指定输入文件 是由于您的服务器上的 PHP 实现而显示的消息,在这种情况下表示 CGI 实现(可以通过 phpinfo() 进行验证)。

现在,要正确解释这一点,您需要对您的系统如何使用 URL 有一些基本的了解。根据您的 .htaccess 文件,您的 CMS 似乎希望 URL 作为 PATH_INFO 变量传递。 CGI 和 FastCGI 实现没有可用的 PATH_INFO,因此当尝试传递 URI 时,PHP 会失败并显示该消息。

我们需要找到替代方案。

一种选择是尝试解决此问题。查看 core php.ini directives 的文档您可以看到您可以更改实现的工作方式。虽然,GoDaddy 可能不允许您在共享环境中更改 PHP 设置。

我们需要找到修改 PHP 设置的替代方法
查看第 40 行的 system/uri.php,您会看到 CMS 尝试了两种类型的 URI 检测 - 第一种是 PATH_INFO,我们刚刚了解到不会工作 - 另一个是 REQUEST_URI

这基本上应该足够了 - 但是解析传递的 URI 会给你带来更多麻烦,因为你可以传递给 REQUEST_URI 变量的 URI 会强制 parse_url()只返回 URL 路径 - 这基本上会让你回到零。

现在,实际上只剩下一种可能性——那就是改变 CMS 的核心。 URI检测部分不足。

QUERY_STRING 添加到第 40 行的数组中,作为 system/uri.php 中的 第一个元素,然后将 .htaccess 更改为如下所示这个:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?/$1 [L]

这会将您请求的 URI 作为 QUERY_STRING 传递给 index.php 并通过 URI 检测来找到它。

另一方面,这使得在不更改核心文件的情况下无法更新 CMS,直到该问题得到修复。太烂了……

需要更好的选择吗?
寻找更好的 CMS。

关于php - 未指定输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14555996/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com