4

所以我使用 Flight PHP 微框架 ( http://flightphp.com/ ) 来进行路由。我的问题是,如何从子目录中运行路由器?我的意思是,本质上,在一个文件夹中运行它“沙盒”。

如,对“/”的请求只是拉出常规的 index.php 文件。但是对 '/flight/file' 的请求会使用 Flight 加载 URL。

我知道你不能只是将它转储到服务器上的一个文件夹中并期望它能够工作,因为 FlightPHP 需要相对于根目录的 URL。

有没有办法在一个目录中运行 FlightPHP,而网站的其余部分运行常规 PHP?

编辑

我尝试简单地将 .htaccess 文件放入子目录中。这具有导致路由仍然像它们来自根一样的特殊效果(例如 /thing/otherthing/ 当它应该是 /otherdirectory/thing/otherthing/ )同时导致 404 回调不起作用。不是我想要的。

编辑 2

.htaccess 文件的内容,这是 Flightphp 网站建议的内容:

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

2 回答 2

11

我知道这是一个老问题,但我一直在做类似的事情,只是通过添加一些类似的东西

RewriteBase /flight/

在飞行目录的 .htaccess 文件中(在所有规则之前)。希望这可以帮助其他人寻找相同的东西。例子:

RewriteEngine On
RewriteBase /flight/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
于 2015-09-14T12:20:38.840 回答
0

很抱歉给你一个不会有太大帮助的答案。我在一个子目录上运行 Flight(也是沙盒)。我已经创建了一个 .htaccess,只是在子目录中使用默认值,Flight 现在将其视为根目录。

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

您是否检查了更高级别的 .htaccess 的内容,也许有什么东西阻止了您

于 2015-05-29T11:56:47.860 回答