Silex路线,htaccess

时间:2013-12-09 20:32:40

标签: .htaccess routes rewrite silex

我正在使用像这样的htaccess,

RewriteEngine On
RewriteBase /link/application/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

在/ application /文件夹中使用简单的index.php,如下所示

<?php

require_once __DIR__ . '/../framework/autoload.php';

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

$app->get('/', function() {
    return 'Hello!';
});

$app->run();

当我尝试访问localhost / link时,Silex给了我一个错误

NotFoundHttpException: No route found for "GET /link/"

所以要修复它我需要更改我的$ app-&gt;转到

$app->get('/link/', function() {

是否有任何方法可以使用RewriteEngine而不是重写Silex路由(保留为“/”)? 我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果将Silex放在子目录中,则需要额外的.htaccess RewriteCond用于目录,请尝试:

<IfModule mod_rewrite.c>
  Options -MultiViews
  RewriteEngine On
  RewriteBase /link/application
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^ index.php [QSA,L]
</IfModule>

如果您的服务器运行的是Apache&gt; = 2.2.16,则可以使用FallbackResource:

FallbackResource /kit2/bootstrap.php

而不是.htaccess中的上述代码。