Apache vHost和API“漂亮的网址”获得404

时间:2017-01-31 04:29:58

标签: php apache .htaccess api mod-rewrite

我有一个REST API,以前在我的localhost上有网址,如下所示:

  

本地主机/ API / V1 /收集/资源

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

  

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以外的任何东西似乎都绕过了命中index.php。我不太熟悉这些重写,所以任何见解都值得赞赏。

2 个答案:

答案 0 :(得分:0)

试试这个

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

答案 1 :(得分:0)

发现了这个问题。当我创建vHosts时,我复制了一个不正确的AllowOverride None设置,这使得我的htaccess文件无效。在关联的vHost目录下更改为AllowOverride All解决了此问题。