我为什么要买这些Silex 404?

时间:2013-03-19 11:37:36

标签: php apache .htaccess wamp silex

刚开始使用Silex并遇到一些问题。

下载fat zip file,将其解压缩到wamp的{​​{1}}文件夹中。所以,这是www

C:\wamp\www\fat-silex\web\index.php

问题是我获得了<?php require_once __DIR__.'/../vendor/autoload.php'; $app = new Silex\Application(); $app->get('/hello', function() { return 'Hello!'; }); $app->run(); 的Apache的404,以及http://localhost/fat-silex/web/hello以外的任何URL,我得到的是Silex'es 404(正如预期的那样)。我猜这些请求直接发送到Apache,并且不会被Silex路由。这似乎可以通过localhost/fat-silex/web文件解决问题,所以我添加了这个,在official documentation中建议:

.htaccess

但是,它似乎根本没有任何效果。

2 个答案:

答案 0 :(得分:5)

您的重写基础应为/fat-silex/web

<IfModule mod_rewrite.c>
    Options -MultiViews

    RewriteEngine On
    RewriteBase /fat-silex/web
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

我已经在我的localhost上测试了它,它运行正常

答案 1 :(得分:1)

问题是你的apache conf。如果您不使用虚拟主机,则应配置apache以允许项目目录的htaccess文件。 在Linux(Ubuntu)上:sudo vi /etc/apache2/sites-available/default

<Directory /var/www/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  ...
</Directory>
<Directory /var/www/fat-silex/>
  AllowOverride All
</Directory>