Php 生产服务器Slim框架路由

Php 生产服务器Slim框架路由,php,routing,production-environment,slim,Php,Routing,Production Environment,Slim,这是我第一次使用Slim框架,到目前为止,我非常喜欢应用程序的外观和感觉。使它几乎像一个express API服务器 我已经在我的本地机器上构建了一个小型服务器,它可以很好地与虚拟主机一起工作 它与我在本地设置的虚拟主机有关,但我试图用.htaccess文件来绕过它 在生产服务器上,如果我输入,它会工作 我的目录结构如下所示: public/ index.php .htaccess src/ .htaccess 根文件夹中的.htaccess如下所示: <IfModule

这是我第一次使用Slim框架,到目前为止,我非常喜欢应用程序的外观和感觉。使它几乎像一个express API服务器

我已经在我的本地机器上构建了一个小型服务器,它可以很好地与虚拟主机一起工作

它与我在本地设置的虚拟主机有关,但我试图用.htaccess文件来绕过它

在生产服务器上,如果我输入,它会工作

我的目录结构如下所示:

public/
    index.php
    .htaccess
src/
.htaccess
根文件夹中的.htaccess如下所示:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule ^$ public/    [L]
   RewriteRule (.*) public/$1 [L]
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
我还将发布index.php的一部分,并显示到目前为止我的登录位置

$app = new Slim\Slim();

$env = $app->environment();

switch($env['REMOTE_ADDR']) {
    case '127.0.0.1':
        define('ENVIRONMENT', 'local');
        break;
    default:
        define('ENVIRONMENT', 'production');
        break;
}

// Here a log works when you go to http://www.domain.com

// Get
$app->get('/:resource(/(:id)(/))', function($resource, $id = null) {

    // Here it works on local machine on production there's no possible way to get here
    // var_dump('foobar');die; will respond nothing to cURL -i -X GET http://www.domain.com/resource

    // The request will return a 404 error

    $resource = \App\Resource::load($resource);
    if ($resource === null) {
        \App\Resource::response(\App\Resource::STATUS_NOT_FOUND);
    } else {
        $resource->get($id);
    }
});

经过一些研究发现,斯利姆现在还不知道如何解决这个问题


正如这里提到的:这在不久的将来不会改变。因此,我修复了虚拟主机的问题。

经过一些研究,结果表明,Slim现在还不知道如何处理这个问题


正如这里提到的:这在不久的将来不会改变。所以我修复了虚拟主机的问题。

看起来你已经解决了,但是对于通过谷歌搜索登陆的其他人来说,这个问题显然已经解决了(截至本评论未经测试)


查看关于GH问题的评论:

看起来你已经解决了,但是对于通过谷歌搜索登陆这里的其他人来说,这个问题显然已经解决了(截至此评论未经测试)


请参阅有关GH问题的评论:

虚拟主机设置是更好的解决方案IMHO虚拟主机设置是更好的解决方案IMHO