【问题标题】:Restler setup not workingRestler 设置不起作用
【发布时间】:2016-08-15 08:03:21
【问题描述】:

在我运行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 的 webapp 设置,如下所示:

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

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

然后我进入那个“根”目录并运行这个命令来安装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 错误。

我做错了什么?

【问题讨论】:

  • 这似乎与 Apache 相关,而不是 Restler。我建议更改标签。
  • 我不完全确定是这样。如果我查看重写规则和 404 上显示的路径,它是 index.php 的 URL,所以我认为 Restler 尝试加载的内容是真正返回 404 的内容。

标签: apache restler


【解决方案1】:

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

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

另一个是apache。我不得不说 /dts2/api/public/index.php,而不是在 RewriteRule 上说 public/index.php

一旦我进行了这两项更改,一切都会按预期进行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多