redirect - 如何在 Squarespace 中使用通配符和变量减少 301 重定向条目的数量?
问题描述
我最近重命名了构成我博客的所有 URL……并且几乎为每个页面都编写了重定向……在我可以使用的地方使用通配符……记住……我所知道的只是 * 通配符时间...
这是我所拥有的一个例子......
/season-1/2017/1/1/snl-s01e01-host-george-carlin -> /season-1/snl-s01e01-george-carlin 301
我想写一个包罗万象的内容,通过一个重定向条目重定向所有 38 季的评论……但我不知道如何摆脱 s01e01- 和 -george-carlin 之间的“主机”一词。 ..并认为它会像这样工作......
/season-*/*/*/*/snl-s*e*-host-*-* -> /season-*/snl-s*e*[code to remove the word "host"]-*-* 301
这甚至接近正确吗?我需要那么多*吗
在此先感谢您的帮助...
解决方案
不幸的是,使用Squarespace 提供的重定向功能,即通配符 ( *
) 和单个变量 ( ) ,您将无法减少单个重定向条目的数量[name]
。将需要多个变量,但仅[name]
支持。
您可以获得的最接近的是:
/season-1/*/*/*/snl-s01e01-host-[name] -> /season-1/snl-s01e01-[name] 301
但是,如果我理解了一些事情,虽然上面的重定向看起来更笼统,但仍然需要为每个帖子单独复制/粘贴。因此,尽管它展示了可以实现的最佳效果,但它并不是技术改进。
因此,只有两种选择:
- 创建一个 Google 表格(或其他电子表格),其中旧 URL 被复制/粘贴在第一列中,使用
arrayformula
正则表达式解析旧 URL 并生成新 URL 的公式被添加到第二列,第三列中的公式是用和写入join
两个单元格。完成后,您可以单击、拖动并突出显示第 3 列中的所有单元格,然后将它们复制并粘贴到 Squarespace 的“URL 快捷方式”文本区域中。找出、编写和测试正确的公式可能非常耗时,但它确实避免了手动输入每个重定向。总的时间/精力是否更少取决于重定向的数量和编写电子表格公式的熟练程度。->
301
可能是使用上面的重定向代码会简化需要在电子表格中编写的公式,这可能会节省一些时间。 - 另一种选择是删除您的重定向,而是通过添加到 404/Page-not-found 页面的 JavaScript 处理重定向。因为听起来您已经有了所有的重定向,但只是试图减少总数,所以我不建议您更改为基于 JavaScript 的方法。无论如何,使用 JavaScript 还有其他缺点。
推荐阅读
- aws-lambda - 打包后覆盖变量或环境值
- html - 带有 2 种颜色和图像的按钮
- c++ - 获取指针的地址为其分配一个值
- bash - 在命令行中动态建立环境变量
- c++ - 矢量类型规范中使用的星号是什么?
- django - Django 选择表单来确定使用的类和字段
- django - Django 过滤 timedelta 错误:TypeError: expected string or bytes-like object
- angular - 新的 Draggable 在拖动后重置滚动
- javascript - 选中复选框时如何使用 id 显示和隐藏
- php - 解析错误:第 7 行 C:\xampp\htdocs\script\includes\application_top.php 中的语法错误、意外的 ','、期望 ')'