我有一个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。我不太熟悉这些重写,所以任何见解都值得赞赏。
答案 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解决了此问题。