【问题标题】:silex framework and .htaccess, obtain error 403 access forbiddensilex 框架和 .htaccess,获取错误 403 访问被禁止
【发布时间】:2012-01-04 00:58:23
【问题描述】:

我决定证明silex框架。我将 index.php 文件、.htaccess 和库 silex.phar 放在我称为“prova”的同一目录中。

但是当我在浏览器中访问 url “localhost/~username/prova”时,我收到错误 403 Access Forbidden。

我的错误是什么?

在我在我的应用中使用的代码下方。

index.php 文件

 <?php

 require_once __DIR__.'/silex.phar';

 $app = new Silex\Application();

 $app->get('/hello/{name}', function ($name) use ($app) {
    return 'Hello '.$app->escape($name);
 });

 $app->run();

还有.htaccess文件

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

【问题讨论】:

  • index.php的完整路径是什么?在机器上,而不是通过浏览器。
  • 我的 index.php 的完整路径是/Users/username/Sites/prova
  • 检查您的 apache 错误日志。通常在/var/log/apache2/error.log.
  • 日志文件的输出:Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /Users/username/Sites/prova/
  • @reb2awrl 请写下您的解决方案作为答案,并作为正确的接受。

标签: .htaccess silex


【解决方案1】:

如果你的应用在 /~username/prova 中运行,那么我怀疑你需要设置:

RewriteBase /~username/prova/

【讨论】:

    【解决方案2】:

    有点晚了,但是在 index.php 在我的测试环境中工作之前删除斜线。 这将在 .htaccess 中留下以下代码:

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

    【讨论】:

      猜你喜欢
      • 2021-08-31
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多