从子目录飞行PHP路由

时间:2014-01-02 19:21:52

标签: php .htaccess url-rewriting url-routing flightphp

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

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

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

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

修改

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

编辑2

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

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

3 个答案:

答案 0 :(得分:5)

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

RewriteBase /flight/

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

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

答案 1 :(得分:0)

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

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

您是否检查了更高级别的.htaccess的内容,可能有阻止您的内容

答案 2 :(得分:-1)

使用这些设置

RewriteBase /flight/

在 .htaccess 文件中

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