1

所以我刚刚使用这个提议的框架为我的业务客户端完成了一个 REST API 的实现作为开始: https ://github.com/ezimuel/zend-expressive-api

在按照客户的要求对 API 进行编程后,我通过在项目的根文件夹中打开控制台终端并键入以下内容,设法让它在 localhost 上运行:

php -S 0.0.0.0:8080 -tc:/wamp64/www/myAPI/public/

在那之后,为了看到它的工作,我所要做的就是通过一个 HTTPie 窗口通过提示:

http GET :8080/api/users

...等等。奇迹般有效。

所以现在我必须在我的 Apache Web 服务器上发布它,共享主机,这意味着没有任何 root 访问权限。

问题是,我无法让它工作,因为当我尝试直接访问文件夹http://myswebsite.com/myapi/public时,脚本返回:

无法获取http://myswebsite.com/myapi/public/

我希望在 hal+json 中看到包含用户列表的输出。在本地主机中时,我可以这样做:

http GET :8080/api/users

然后脚本返回:

HTTP/1.1 200 OK 连接:关闭 内容类型:application/hal+json 日期:周一,2018 年 5 月 7 日 14:54:46 +0200 主机:localhost:8080

{
    "_embedded": {
        "users": [
            {
                "_links": {
                    "self": {
                        "href": "http://localhost:8080/api/users/1"
                    }
                },
                "email": "foo@host.com",
                "id": "1",
                "name": "Foo"
            }
        ]
    },
    "_links": {
            "self": {
                "href": "http://localhost:8080/api/users?page=1"
            }
        },
        "_page": 1,
        "_page_count": 1,
        "_total_items": 1
}

我的目标:我希望通过互联网上的 URL、PHP + Apache + MySql 共享主机访问时能够获得相同的结果。

任何帮助,将不胜感激。提前致谢。

4

1 回答 1

0

我做的!

在对 htaccess 的文档进行了一些挖掘之后,我找到了一种将请求从根文件夹路由到公用文件夹的方法,这就是我需要做的所有事情:

RewriteEngine on
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]
于 2019-07-15T06:39:39.737 回答