camelot / canonical-url-bundle
规范URL Symfony包
v3.0.1
2022-04-19 13:27 UTC
Requires
- php: ^8.0
- symfony/config: ^6.0
- symfony/dependency-injection: ^6.0
- symfony/http-kernel: ^6.0
- symfony/routing: ^6.0
- twig/twig: ^3.0
Requires (Dev)
- camelot/coding-style: ^3.0
- friendsofphp/php-cs-fixer: ^3.8
- phpunit/phpunit: ^9.5
- psalm/plugin-phpunit: ^0.16
- symfony/browser-kit: ^6.0
- symfony/framework-bundle: ^6.0
- symfony/phpunit-bridge: ^4.3.4 || ^5.0
- symfony/yaml: ^6.0
- vimeo/psalm: ^4.22
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许可证下发布