Routing 将模块/操作/重定向到模块/操作

Routing 将模块/操作/重定向到模块/操作,routing,seo,symfony-1.4,Routing,Seo,Symfony 1.4,我的问题很简单,如何使用symfony 1.4实现SEO优化任务 第一个问题,这不仅是一个SEO问题,更是一个symfony 1.4的一般问题,是symfony对URL做了一件奇怪的事情,比如: 模块/动作 及 模块/动作/ 第一个有效,第二个被拒绝或抛出错误,或者最常见的有效,但不重定向(使用301)到第一个,这应该是一个约定,因为从SEO角度来看,这些URL是不相同的。 不应该是这样。这是symfony中的常见错误,后面的斜杠可能会导致问题。有些人会告诉你这是正常的,因为第一个是文件,第二个

我的问题很简单,如何使用symfony 1.4实现SEO优化任务

第一个问题,这不仅是一个SEO问题,更是一个symfony 1.4的一般问题,是symfony对URL做了一件奇怪的事情,比如:

模块/动作

模块/动作/

第一个有效,第二个被拒绝或抛出错误,或者最常见的有效,但不重定向(使用301)到第一个,这应该是一个约定,因为从SEO角度来看,这些URL是不相同的。
不应该是这样。

这是symfony中的常见错误,后面的斜杠可能会导致问题。有些人会告诉你这是正常的,因为第一个是文件,第二个是目录。由于无法使用symfony浏览目录,因此会抛出一个错误

但您有两个解决方案,使用htaccess或使用自定义路由

htaccess:(来自)

自定义路由:(来自)

/apps/frontend/config/factories.yml

all:
  routing:
    # class: sfPatternRouting
    class: myPatternRouting
创建类:

apps/frontend/lib/myPatternRouting.class.php

<?php
class myPatternRouting extends sfPatternRouting
{
  protected function normalizeUrl($url)
  {
    $url = parent::normalizeUrl($url);

    // remove trailing slash
    $url = preg_replace('/\/$/', '', $url);

    return $url;
  }
}

它会抛出什么错误?你能把你的
routing.yml
<?php
class myPatternRouting extends sfPatternRouting
{
  protected function normalizeUrl($url)
  {
    $url = parent::normalizeUrl($url);

    // remove trailing slash
    $url = preg_replace('/\/$/', '', $url);

    return $url;
  }
}