从子目录飞行PHP路由

问题描述 投票:4回答:2

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

对于'/'的请求只是拉取常规的index.php文件。 但是对'/ flight / file'的请求会使用Flight加载URL。

我知道你不能只将它转储到服务器上的文件夹中并希望它能够正常工作,因为FlightPHP需要相对于root的URL。

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

编辑

我尝试将.htaccess文件放入子目录中。 这具有特殊的效果,使得路线仍然像从根部一样行动(例如/事物/ otherthing /何时应该是/ otherdirectory / thing / otherthing /)同时导致404回调不起作用。 不是我的意图。

编辑2

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

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
php .htaccess url-rewriting url-routing flightphp
2个回答
7
投票

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

RewriteBase /flight/

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

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

0
投票

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

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

你有没有检查过更高级别的.htaccess的内容,也许有些东西会阻止你

© www.soinside.com 2019 - 2024. All rights reserved.