域名怎么写才能访问api接口

我的项目名称是admin-api,我的域名没有指向public文件夹,指向的是项目文件夹的上级文件夹,我访问

http://pachong.test/admin-api/public

这个域名可以访问到laravel的默认首页。

我添加了一个product-temp的api接口,我访问这个域名:

http://pachong.test/admin-api/public/api/product-temp

提示我:
No input file specified.

我的地址写错了么?怎么访问我的接口?

我拿get路由试还是不行:

Route::get('/hello', function (){
    return response()->json(['hello'=>'world']);
});

访问

http://pachong.test/admin-api/public/api/hello

还是没反应

阅读 5.3k
4 个回答

首先不理解为什么要这样,业务需求?

正常情况下 nginx vhost 设置到 pulibc 目录下通过 http://pachong.test/admin-api/api/hello 可以正常访问,是因为设置了 rewrite

location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

但是你现在没有把目录设置到 public 下,所以你通过 http://pachong.test/admin-api/public/api/hello 肯定是访问不到的,因为 rewrite 没有生效。

好了,问题原因找到了,解决办法其实比较清晰了,自己多尝试下。

试试 http://pachong.test/admin-api/public/index.php/api/product-temp 可以不,如果可以那就是你的 .htaccess 的重写规则有问题了。。。

实际访问的路由并不一定是你眼睛看到的,就是说你产生了幻觉。。。服务器都要配置文件,可以通过修改配置文件来控制你时机访问的目标,你可以查查你用的啥服务器,看看服务器的配置文件有没有重写url

看你的路由有 api 那么你的 api 这部分录有应该写在 routes\api.php
你的问题,域名配置问题,以 homestead 配置举例,

map: boke.app
to: /home/vagrant/Code/lost-blog/public

map:你的域名
to:项目 index.php 位置

你需要修改你的apache 等域名配置哪里。
配置完成,则 http://pachong.test/api/hello.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题