重定向模块/动作/到模块/动作

时间:2012-08-29 09:26:47

标签: routing seo symfony-1.4

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

第一个问题,不仅是一个搜索引擎优化问题,而是一般的symfony 1.4,symfony对网址做了一件奇怪的事情:

  

模块/动作

  

模块/动作/

第一个工作,第二个被拒绝或抛出错误,或者什么是最常见的工作,但不会重定向(使用301)到第一个,这应该是一个约定,因为SEO-wise那些网址不完全相同。 这不应该是。

1 个答案:

答案 0 :(得分:2)

这是symfony中的一个常见错误,这个尾随斜杠可能会造成麻烦。有些人会告诉你这是正常的,因为第一个是文件,第二个是目录。由于您无法使用symfony浏览目录,因此会抛出错误。

但是你可以选择两种方法,使用htaccess或使用自定义路由。

htaccess:(来自here

RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

自定义路由:(来自here

/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;
  }
}