定制 futureactivities/craft-custom-redirects 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

futureactivities/craft-custom-redirects

最新稳定版本:1.0.3

Composer 安装命令:

composer require futureactivities/craft-custom-redirects

包简介

Define custom redirects with API support

README 文档

README

This provides a basic area of the CMS to define custom redirects. Requires Craft v4+

This plugin does nothing on the frontend, instead it only provides the following REST endpoint to lookup if a redirect exists:

/rest/v1/redirect

Which expects a body param of:

uri = the full path, e.g. /mortgages

regex is supported in the from field. Examples:

^/stansted?
^/(estate-agents/)?(\bedinburghwest\b)(/.*)?(/)?
^/estate-agents/(.*)/buying/?

Example Usage

The plugin will respond in the following format:

{
    "from": "/one",
    "to": "/two",
    "code": "301"
}

You can then integrate this into your chosen frontend system however you require. For example, for Nuxt 3 this might be added to a catch all route like so:

const { data } = await useAsyncQuery(Url, { siteId: config.public.siteId, url: route.path.replace(/^\/+/g, '') });

// check if entry is null and trigger 404 error
if (!data.value || !data.value.entry) {
    // Check for a redirect
    const custom = await axios.post(config.public.cmsUrl + '/rest/v1/redirect', qs.stringify({ uri: route.path }));
    if (custom && custom.data)
        await navigateTo(custom.data.to, { redirectCode: custom.data.code })
    
    throw createError({ statusCode: 404, statusMessage: 'Page not found' });
}

Import

A CSV of redirects can be imported by uploading the CSV to: /storage/redirect-import.csv

The CSV should be in this format;

from, to, group, code, siteId

Where:

group = A free text grouping of the redirects in the CMS
code = The status code, likely either 301 or 302

Once uploaded, navigate to the following url in the CMS:

/admin/customredirects/import

Multisite Support

This plugin supports multiple sites. When calling the endpoint, set the CMS base url to include your site handle. For example:

/de/rest/v1/redirect

To Do

  • Create CMS interface for CSV upload
  • Consider GraphQL query support

统计信息

  • 总下载量: 82
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2024-02-12