Restler 设置不起作用

Restler setup not working

在我的网络服务器上 运行 Apache/2.2.26 (Unix) DAV/2 PHP/5.4.24 mod_ssl/2.2.26 OpenSSL/0.9.8y 我正在尝试设置 Restler,但它似乎无法正确处理 index.php。这是一个带有 httpd.conf 的 Web 应用程序设置,如下所示:

Alias "/dts2" "/usr/local/WebApps/DTS/root"

<Directory "/usr/local/WebApps/DTS/root">
  AllowOverride All
  Options -Indexes FollowSymLinks
</Directory>

然后我进入 'root' 目录和 运行 安装 restler 的命令:

composer create-project restler/application=dev-basic api --prefer-dist

之后,在 'api' 目录中,我创建了如下所示的 .htaccess 文件:

DirectoryIndex index.php
<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteRule ^$ public/index.php [QSA,L]
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ public/index.php [QSA,L]
</IfModule>
<IfModule mod_php5.c>
    php_flag display_errors On
</IfModule>

最后,当我尝试访问“https://..../dts2/api/Home/”以获取 restler 提供的成功消息时,我收到了 404 错误。

我做错了什么?

好的,终于搞定了。有两个问题。

一个是 Restler 本身。提供的 index.php 表示 $r->addAPIClass('Home', '');。我不得不删除第二个空参数。

另一个是apache。我不得不说 /dts2/api/public/index.php.

而不是在 RewriteRule 上说 public/index.php

在我进行了这两项更改后,一切都按预期工作了。