我遵循this tutorial用PHP编写了一个简单的API。它在我的计算机上完美运行。我在源文件夹中添加了其他一些php文件,并在项目中添加了composer程序包(Firebase / JWT),因此创建了一个vendor文件夹和几个composer文件。现在项目文件夹如下所示:
std::vector<int> a = {1,2,3,4,5};
std::vector<int> b = {1,2,3,4,5};
std::vector<int>c;
std::transform(a.begin(),a.end(), b.begin(),
std::back_inserter(c),
[](const auto& aa, const auto& bb)
{
return aa*bb;
});
for(auto cc:c)
std::cout<<cc<<std::endl;
我使用子域(api.mydomain.com)将其上传到了cpanel托管(位于api /)。我用cpanel制作了子域,然后首先将根文件夹设置为api / public,但没有用(500错误)。然后,我尝试将子域指向api /,但这也不起作用。我能做什么?我认为问题出在.htaccess文件中。
/
- /plublic
-- .htaccess
-- index.php // requires src/functions.php
- /src
-- connection.php
-- functions.php // requires other src/.php files and JWT from composer
-- panel.php
-- responses.php
- /vendor
-- /composer // and files
-- /firebase // and files
-- autoload.php
.htaccess
composer.json
composer.lock
我对.htaccess或作曲者的了解不多,所以我没有做任何改动。谢谢。
答案 0 :(得分:0)
很明显为什么它不起作用。查看您的规则:
#root .htaccess
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
www.example.com
或api.example.com/
到子文件夹/public
。 api.example.com/test
至api.example.com/public/test
因此,有效地,这两个规则之一总是会触发。
由于您已经将api.example.com的根目录设置为/ public,因此无法找到/public/public
子文件夹;因此,您将得到一个错误500。
要解决此问题,您可以尝试删除.htaccess根目录中的两个规则,也可以将/ api的根目录不设置为子文件夹。
public / .htaccess文件具有典型的单入口点配置,应该可以。
始终以隐身模式使用全新的浏览器来测试更改。