代码之家  ›  专栏  ›  技术社区  ›  Julius F

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

  •  0
  • Julius F  · 技术社区  · 12 年前

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

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

    模块/动作

    以及

    模块/动作/

    第一个有效,第二个被拒绝或抛出错误,或者最常见的有效,但不重定向(使用301)到第一个,这应该是一种惯例,因为SEO方面,这些URL不相同。 这不应该。

    1 回复  |  直到 12 年前
        1
  •  2
  •   j0k gauthamp    12 年前

    这是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;
      }
    }