PHP-无脂肪框架-子文件夹中的命名URL路由-404
形势 我试图在我的webapp中实现基于无脂肪框架3.4版的命名URL路由 我正在处理的项目位于子文件夹/foo中 因此,我通过localhost/foo访问该项目 这很好地工作,我也可以访问不同的URL路由没有任何问题 问题描述 当我访问模板中的路由时,它将呈现为PHP-无脂肪框架-子文件夹中的命名URL路由-404,php,apache,fat-free-framework,Php,Apache,Fat Free Framework,形势 我试图在我的webapp中实现基于无脂肪框架3.4版的命名URL路由 我正在处理的项目位于子文件夹/foo中 因此,我通过localhost/foo访问该项目 这很好地工作,我也可以访问不同的URL路由没有任何问题 问题描述 当我访问模板中的路由时,它将呈现为 浏览器使用前导“/”将其解释为Web服务器的开始,因此将我转到localhost/do/stuff,而不是localhost/foo/do/stuff 代码 以下是我将命名路由传递到模板的方式: <form method="P
浏览器使用前导“/”将其解释为Web服务器的开始,因此将我转到localhost/do/stuff,而不是localhost/foo/do/stuff
代码
以下是我将命名路由传递到模板的方式:
<form method="POST" action="{{ 'doStuff' | alias }}">
.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 rewrite已启用。
我觉得我错过了一些重要的事情,但我已经花了两天的时间试图让它发挥作用,但运气不佳。任何线索将不胜感激 将以下代码添加到您的
它设置浏览器的默认基并附加每个url,即使其中包含/
。函数alias()
返回相对于web应用程序的url,而不是相对于web根目录的url。因此,您应该在其前面加上web appBASE
,如下所示:
<form method="POST" action="{{ $BASE }}{{ 'doStuff' | alias }}">
如果您使用的是模板引擎,我已经设置了以下您的代码不起作用。您的代码仅适用于视图类。你在浏览器里查过你的源代码了吗?URL在标题中看起来正确吗?你指的是哪个代码?我将我的基本属性更改为yours,它现在将
输出到页面源代码中,这是webapp所在的位置。不幸的是,当访问命名路由时,我仍然会被路由到Web服务器的根目录(例如localhost/do/stuff而不是localhost/foo/do/stuff)。解决办法很简单,但我太盲目了,看不见它。非常感谢:)!
<base href="{{ @SCHEME.'://'.@HOST.@BASE.'/' }}">
<form method="POST" action="{{ $BASE }}{{ 'doStuff' | alias }}">