【问题标题】:How should the .htaccess look like for Symfony routingSymfony 路由的 .htaccess 应该是什么样子
【发布时间】:2016-04-02 21:51:58
【问题描述】:

我一直在尝试一些 Symfony 的组件,并且进展相对顺利。经过一番谷歌搜索后,我发现我需要将 .htaccess 文件更改为至少这样才能使其工作:

<IfDefine APACHE2>
    AcceptPathInfo on
</IfDefine>
<Files "index.php">
    Options +Includes
    SetOutputFilter INCLUDES
    AcceptPathInfo On
</Files>

但是,现在每当我想进行header() 调用或拥有 img/script/stylesheet 标记时,我需要在输入路径之前拥有一个 ../。当我有一个变量名(例如,路径看起来像这样:index.php/article/32)时,我需要 ../../ 在我将路径的其余部分输入到 src 或 href 之前。
我的 .htaccess 文件设置有误还是我需要做其他事情?

所以一个 img 标签应该是这样的:

<img href="../PATH_TO_IMAGE">

当没有占位符时,像这样:

<img href="../../PATH_TO_IMAGE">

当占位符中存在变量时。

因为我怀疑不应该这样。
我的路由如下所示:

$routes = new RouteCollection();
$routes->add('loginuser', new Route('/login', array('controller' => 'registeruser', 'permission' => Permissions::$public)));

(我在某个网站上关注了一个教程,遗憾的是我现在似乎找不到它)

编辑:我只使用 Routing 组件和 Http Foundation 组件。

提前谢谢你!

【问题讨论】:

  • 使用asset组件来管理图片的URL生成,使用路由组件来生成一些路由的路径。你是使用全栈框架,还是只使用一些选定的组件?
  • @Federico 我正在使用路由和 http 基础组件。所以我必须为此使用资产组件?

标签: php apache .htaccess symfony


【解决方案1】:

所以我通过添加来自 Symfony 的 Asset 组件并创建一个 PathPackage 来解决这个问题,它首先指向根目录并进一步进入 web 文件夹。

$package = new PathPackage('/ENTER_FURTHER_PATH_HERE/', new EmptyVersionStrategy());

echo '<img src="'. $package->getUrl('Images/icon.png') . '">';
echo '<a href="' . $package->getUrl('index.php/WHATEVER') . '">Link name</a>';
echo '<a href="' . $package->getUrl('index.php') . '">Home</a>';
echo '<script src="'. $package->getUrl('Scripts/JAVASCRIPT_NAME') .'"></script>';
echo '<link src="'. $package->getUrl('CSS/STYLESHEET_NAME') .'">';

(您也可以跳过 PathPackage 并这样做,因为它不是绝对必要的)

echo '<a href="/ENTER_FURTHER_PATH_HERE/index.php">Home</a>;

不管怎样,我就是这样解决的。如果有人知道更好的方法,请随时告诉我。将不胜感激。

【讨论】:

    猜你喜欢
    • 2013-02-17
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2015-12-09
    • 2017-12-14
    • 1970-01-01
    相关资源
    最近更新 更多