【问题标题】:Silex routes, htaccessSilex 路由,htaccess
【发布时间】:2013-12-10 11:23:52
【问题描述】:

我正在使用这样的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();

当我尝试访问本地主机/链接时,Silex 给了我一个错误

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

所以要修复它,我需要更改我的 $app->get 到

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

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

【问题讨论】:

    标签: .htaccess routes rewrite silex


    【解决方案1】:

    如果 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 >= 2.2.16,您可以使用 FallbackResource:

    FallbackResource /kit2/bootstrap.php
    

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

    【讨论】:

      猜你喜欢
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 2017-02-20
      • 2023-04-01
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      相关资源
      最近更新 更多