Silex Micro Framework:从子文件夹运行

时间:2014-10-01 16:48:06

标签: php apache .htaccess silex

我下载了Silex,因为我想在我的下一个项目中尝试它。我在Windows 8.1 64x下使用mamp,我认为这并不重要,但无论如何,我将Silex放入C:\ mamp \ htdocs \ projectfolder \ (http://locahost/projectfolder/)

这意味着我获得了http://locahost/projectfolder/vendorhttp://locahost/projectfolder/web/

我在" web"下写了这个.htaccess。目录

    选项-MultiViews

RewriteEngine On
RewriteBase /projectfolder/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

如果我进入http://locahost/projectfolder/web/hello,但是我希望来自/ projectfolder /,它是完美的,所以我在/ projectfolder中用这个内容创建了一个新的htaccess文件:

    选项-MultiViews

RewriteEngine On
#RewriteBase /projectfolder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ web/index.php [L]

但是当我运行它时,应用程序重新调整NotFoundException:抱歉,找不到您要查找的页面。

提前致谢

1 个答案:

答案 0 :(得分:2)

我也是沉默的新人,所以如果有人有更好的见解,请告诉/教我们:)

我决定在一个与silex不同的文件夹上创建一个项目,我所做的是,我创建了一个新的index.php,需要使用silex的autoload.php和一个基本相同的新.htaccess。 / p>

所以,我有这个结构:

/myproject/silex/
/myproject/app/
/myproject/app/index.php
/myproject/app/.htaccess

我的.htaccess

<IfModule mod_rewrite.c>
    Options -MultiViews

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [QSA,L]
</IfModule>

和我的index.php

<?php
require_once __DIR__.'/../silex/vendor/autoload.php';
...

BTW,我配置了一个vhost指向/ myproject / app /

希望这有帮助。