camelot/canonical-url-bundle

规范URL Symfony包

v3.0.1 2022-04-19 13:27 UTC

This package is auto-updated.

Last update: 2024-09-12 13:32:22 UTC


README

CanonicalUrlBundle是一个用于将来自多个URL对同一资源的请求重定向到单个规范URL的Symfony包。

例如,如果你的网站example.org有一个名为/about-us的资源,它可能可以通过以下方式访问

http://example.org/about-us
http://example.org/about-us/
http://www.example.org/about-us
http://www.example.org/about-us/
https://example.org/about-us
https://example.org/about-us/
https://www.example.org/about-us
https://www.example.org/about-us/

当用户使用上述任何URL请求资源时,CanonicalUrlBundle将基于预定义的网站URL构建一个规范URL,如果请求URL不匹配,则会执行HTTP重定向。

该包还可以向你的Twig模板添加一个<link rel="canonical">标签,有关如何操作的说明请参阅用法部分。

安装

使用Symfony Flex的应用程序

打开命令行,进入你的项目目录,然后执行以下命令

$ composer require camelot/canonical-url-bundle

不使用Symfony Flex的应用程序

步骤1:下载包

打开命令行,进入你的项目目录,并执行以下命令下载此包的最新稳定版本

$ composer require camelot/canonical-url-bundle

此命令需要你全局安装了Composer,具体请参阅Composer文档中的[安装章节][composer]。

步骤2:启用包

然后,通过将其添加到项目config/bundles.php文件中注册的包列表中,启用该包

// config/bundles.php

return [
    // ...
    Camelot\CanonicalUrl\CamelotCanonicalUrl::class => ['all' => true],
];

步骤3:配置包

将包的配置添加到config/packages/camelot_canonical_url.yml

camelot_canonical_url:
    redirect:       true                  # Set to false disable redirects if you just want to use the canonical link tag
    redirect_code:  301                   # Leave this at 301 for SEO
    trailing_slash: false                 # Set to true if your routes and canonical URLs contain a trailing slash

config/packages/routing.yaml中设置Symfony路由器的默认URI

framework:
    router:
        # ...
        default_uri: 'https://example.org'

用法

要将<link rel="canonical">标签添加到你的页面,请在twig模板的<head>部分包含以下代码

{{ camelot_canonical_link_tag() }}

href属性将默认为当前请求的规范URL,但可以覆盖

{{ camelot_canonical_link_tag('https://example.org/my-custom-link') }}

许可

此包在MIT许可证下发布