2015-05-17 2 views
1

Мой проект - это всего лишь тестовый API-проект на локальном сервере в подпапке. Таким образом, мой url будет http://localhost/test-project-x/api/. В нем есть index.php.PHP Silex route base url

Корневой маршрут доступен по указанному выше 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

Просто используйте 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.

+0

Yup, это было! – Coo

 Смежные вопросы

  • Нет связанных вопросов^_^