Apache vHost 和 API "pretty url"获得 404



我有一个 REST API,它以前在我的本地主机上有 url,如下所示:

localhost/api/v1/collection/resource

当我在本地处理 API 和 Web 应用程序时,我实现了 apache 虚拟主机来获取以下 api url:

api.mydomain.com/v1/collection/resource

我有一个正在路由呼叫的前端控制器。 api.mydomain.com 成功命中前端控制器。 api.mydomain.com/v1 列出了目录(所有 php 文件),这是一个问题,api.mydomain.com/collection/resource 结果为 404。

我的目录结构是:

/api
  /v1
    php files 
.htaccess 
Router.php 
index.php

.htaccess 包含:

RewriteEngine On
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

我不太确定问题出在哪里。除 api.mydomain.com 之外的任何东西似乎都绕过了命中指数.php。我对这些重写不太熟悉,所以任何见解都是值得赞赏的。

试试这个

 RewriteEngine On
 RewriteBase /
 RewriteCond %{HTTP_HOST} ^api.mydomain.com$ [NC]
 RewriteRule ^(.*)$ index.php [R=301,NC,L]

发现问题。创建虚拟主机时,我复制了不正确的"允许覆盖无"设置,这导致我的 htaccess 文件无效。在关联的 vHost 目录下更改为"允许覆盖所有"可解决此问题。

最新更新