我有一个非Symfony项目,我希望将其包含在Symfony项目中。
项目在
等形式中有很多相对路径<form action="actions/check.php">
<input type="text" name="pages">
<input type="submit" value="Check">
</form>
或包含include '../include/class.php';
完全改变它在Symfony中工作会非常麻烦,那么有没有办法让这些相对路径在Symfony项目中工作?
我已将项目包含在捆绑包内的文件夹中,但显然提交表单会将我发送到网站上不存在的相对页面,因为没有为该页面定义路径。例如,对于上述表单,我是mywebsite/actions/check.php
发送的。
为那些创建路由不会做太多,因为我需要为它们创建Symfony控制器,这意味着我需要重做项目,并从这些控制器中的原始文件中复制/粘贴代码。
是否可以在Symfony项目中使用非Symfony代码和相对路径?我认为相对包含路径可行,但表单行为怎么样?
答案 0 :(得分:1)
您正在尝试将脚本作为静态文件提供,绕过路由器。 通常有框架用来提供CSS,JS,JPG,PNG等的静态路由......你的静态.PHP文件应该放在那个文件夹中。
这个答案:Rendering static content in Symfony2 project讨论如何绕过带有.htaccess文件的symfony路由器,我认为你已经有了一个条件(RewriteCond):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
它告诉我们的是:如果文件存在于文件夹结构中,它将不会使用路由器并按原样提供。