PHP Silex路由基本URL

时间:2015-05-17 09:51:50

标签: routes silex base-url

我的项目只是子文件夹中本地服务器上的测试API项目。所以我的网址是http://localhost/test-project-x/api/。有一个index.php。

根路由可通过上面的URL获得。但是当我转到http://localhost/test-project-x/api/test时,我得到一个404.为了使其工作,我需要将PHP路由从$app->get('/test' ...更改为$app->get('/test-project-x/api/test' ...

我希望这与/test一起使用。但对于我的生活,我似乎无法弄清楚/记得如何...

test-project-x/api/index.php

<?php    
require_once __DIR__.'/../../vendor/autoload.php';

$app = new Silex\Application();
$app['debug'] = true;

$app->get('/test', function() use($app) {
    return 'This would be the test route.';
});

$app->get('/', function() use($app) {
    return "This would be the root.";
});

$app->run();

test-project-x/api/.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    #RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>

1 个答案:

答案 0 :(得分:1)

只需将RewriteBase与正确的文件夹一起使用:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /test-project-x/api/
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php [QSA,L] 
</IfModule>

你有,你的路线现在在/ test-project-x / api文件夹中。