PHP - Fat Free 框架 - 在子文件夹中命名为 URL 路由 - 404

PHP - Fat Free Framework - Named URL Routing in Subfolder - 404

情况

我正在尝试根据 Fat Free Framework 3.4 版将命名 URL 路由实施到我的 Web 应用程序中。

我正在处理的项目位于子文件夹 /foo 中 所以我通过localhost/foo

访问项目

效果很好,我也可以毫无问题地访问不同的 URL 路由。

问题描述

当我访问模板中的路由时,它呈现为 <form method="POST" action="/do/stuff"> 使用前导'/',浏览器将其解释为网络服务器的开始,因此将我带到 localhost/do/stuff 而不是 localhost/foo/do/stuff

代码

这就是我将命名路由传递到模板的方式:

<form method="POST" action="{{ 'doStuff' | alias }}">

这是我的例子 routes.ini

POST @doStuff: /do/stuff=Views->doStuff

.htaccess

RewriteEngine On
RewriteBase /foo/
RewriteRule ^(tmp)\/|\.ini$ - [R=404]
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L,QSA]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

apaches mod-重写已启用。 我觉得我错过了一些重要的东西,但我已经尝试了两天来让它工作,但没有运气。任何潜在客户将不胜感激!

将以下代码添加到您的 <head>

<base href="{{ @SCHEME.'://'.@HOST.@BASE.'/' }}">

它设置浏览器的默认基础并附加每个 url,即使它包含一个 /

alias() 函数 returns URL 相对于网络应用程序,而不是网络根目录。因此,您应该在其前面加上网络应用 BASE,如下所示:

<form method="POST" action="{{ $BASE }}{{ 'doStuff' | alias }}">