问题标签 [canonical-link]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
841 浏览

mod-rewrite - 漂亮的网址与。重复内容

我正在尝试清理关于这个备受关注的话题的灰色区域......

像大多数开发者一样,我用 mod_rewrite 制作了一些漂亮的 URL。我的网站内部链接指向漂亮的 URL,一切运行良好。

但是,如果我直接指向旧 URL,我仍然可以访问它。

现在,这肯定会导致重复的内容问题,所以在做了一些研究之后,似乎 301 重定向是要走的路。

但是......这是灰色的部分......

如果您在一个拥有数千个 URL 的网站上工作,那么实现这一目标的最佳做法是什么?我不想在 .htaccess 中列出 1k+ 行我在我的重写规则中想到了一个正则表达式,但是我漂亮的 URL 中包含来自数据库的名称......我无法从 .htaccess 访问它 :)

我遇到了死胡同吗?有没有解决的办法?谷歌的 规范标签是一种可能性吗?

0 投票
2 回答
1360 浏览

php - 如何通过 PHP 获取/读取 Meta Canonical 中最干净的 url?

Given: 在 htaccess 中将旧的丑陋 url/somepage?ln=en重写为/en/somepage
Given: 使用的规范元标记,并在其上方使用这个 php 脚本来填充整洁的 url:

如何让他们像规范?

有什么方法可以在没有任何字符串的情况下解析当前 url,或者从 url 中删除多余的字符串并将其放入规范 url 中?

0 投票
2 回答
601 浏览

php - PHP:Canonical Url 在多语言网站中还不是万无一失的。如何让它更一致?

在设置规范标签时,我发现我并没有从规范目的中得到所有的汁液......

GIVEN 目前丑陋的 url 像website.org/juice?ln=de通过 apache 变得很好,可以以更用户友好的方式访问,比如website.org/de/juice. 现在,在这个多语言网站中,我希望保持一致性,并且所有页面都将其语言作为一个文件夹。我希望搜索引擎能记住并喜欢那些/language/page,而不是丑陋的对手/page?ln=language

问题 1:在我想如何使用 Canonical 将其传达给那里的搜索引擎方面,我是否走在正确的轨道上?

目前,该代码删除了不必要的字符串,因此规范 url 很短:
当 URL = http://website.org/de/juice?ln=whatever
canocal url= http://website.org/de/juice

到目前为止还不错,但是,它不会重写在网络上漫游的旧文件/旧的搜索引擎缓存,因此以下情况会出错:
当 URL = http://website.org/juice?ln=xyz (缺少语言文件夹)
然后规范变为 = http://website.org/juice(而它应该是http://website.org/xyz/juice

问题 2:我应该在我的代码中添加什么,以改进/防止我的规范,以便它识别没有设置语言文件夹的情况?

注意:语言可以是 {de, nl, es, it, en, la, .... 但也可以是 zh-CN, zh-TW} 所以无论后面是什么ln?=

0 投票
2 回答
171 浏览

php - 1 个要杀死的错误...让 PHP 生成规范

为了构建一个干净的规范 url,它总是返回 1 个基本 URL,我陷入了以下情况:

当 URL :http://website.com/de/home.ext?ln=de
规范: http://website.com/de/home.ext

我也想删除文件扩展名,无论是 .php、.ext .inc 还是任何两个或三个字符扩展名.[xx]左右.[xxx],基本 url 变为:http://website.com/en/home

啊啊好多了!但是我如何在当前代码中实现这一点?任何提示都非常感谢+!

0 投票
2 回答
1024 浏览

asp.net-mvc - 需要帮助在 asp.net mvc 中规范化 HTTP GET 表单

我在一个 asp.net mvc 站点中有一个表单,它有 3 个用途:分页、排序和搜索。这些项目都应该以相同的形式呈现,因为返回正确的搜索结果取决于所有 3 个方面的变量。我想要做的是将参数移出查询字符串并将它们放在规范的 URL 中。

我快到了,这是我到目前为止的 3 个路由配置(使用 T4MVC 作为区域、控制器和操作名称):

视图中的表单使用以下语法提交到 CanonicalizeSearch 路由:

在 MyWidgetsController 中,有 2 个操作方法:

这适用于将所有查询字符串变量移动到规范化路由中,除了关键字。如果我将关键字参数添加到第一个路由,CanonicalizeSearch 操作仅在关键字不为空、空或空格时重定向到搜索操作。这不好,因为当没有输入关键字时,它会导致无法浏览页面结果。

我想我已经尝试了一切——在控制器中给关键字一个默认值,添加第四条路由,将关键字添加到其他 3 个参数等。但是我似乎可以让它工作的唯一方法是保持关键字为一个查询字符串参数。(实际上,我可以通过在 CanonicalizeSearch 中的关键字前加上下划线并在 Search 中将其剥离来使其工作,但这很 hacky)。

有什么帮助吗?

0 投票
2 回答
652 浏览

ruby-on-rails - Rails 中的规范化 - 路由或 .htaccess?

我有一个即将启动的网站,并且已经提出了 URL 规范化的请求。我想知道在我的 RoR 应用程序中让http://www.example.com的所有请求永久重定向(301)到http://example.com的最佳方式是什么?或者,换一种方式问,我怎样才能去掉“www”。从所有生成的 url、路径、请求?

仅供参考,这是一个 Rails 3 应用程序。

0 投票
1 回答
1792 浏览

c# - asp.net mvc 中的规范链接

以下所有内容都指向我网站的同一主页:

/
/新闻/
/news/all-time/all
/news/all-time/all/1

同一个 .cshtml 文件也会呈现其他变体,例如(最后的数字是页码)

/news/month/all/
/news/month/images/3

我使用类似的东西在视图中设置它:ViewBag.CanonicalLink = "http://www.exmple.com/";

ETC..

现在我试图在 cshtml 文件中创建一个规范链接,但对如何为 SEO 正确设置它感到困惑?有任何想法吗?

0 投票
2 回答
365 浏览

mod-rewrite - RewriteRule:将旧路径重定向到存档服务器并规范化到非 www 域?

我正在将旧服务器移至 archive.example.com,新服务器将继续在 example.com 上运行,同时所有 www URL 都被规范化为 example.com 或 archive.example.com,并且应该处理尾部斜杠问题.

旧服务器有许多目录,因此所有内容都需要重定向到 archive.example.com,同时保留路径信息,除了将在新服务器上运行的少数目录。我不想重定向并将为新服务器保留的目录是:

例如:

所有其他目录应重定向到 archive.example.com。例如:

这是我的 httpd.conf 文件中的内容:

这是正确的和/或有更精确的方法吗?

0 投票
1 回答
516 浏览

http - 为什么 rev 规范链接总是使用 302 重定向

一些站点支持用于自托管短 URL 的RevCanonical链接。如flickr、php.net、dopplr。

据我了解,一些文章也这么说。URL 缩短服务应该使用 301 永久重定向而不是 302。

但我上面列出的所有网站都使用 302 临时重定向来为其 RevCanonical 链接。

这是我使用的一些结果curl -I

多普勒:

弗里克:

我不明白为什么这种情况(自主机缩短 URL)应该使用 302 重定向。谁能解释原因?

0 投票
1 回答
1118 浏览

url - 我可以在它链接到的同一页面上使用规范 URL 吗?

我想问一下规范网址。让我们假设这个 URL 结构:

简而言之,有多个 URL 显示相同的内容。但只有 /category_A/page1 是原始(规范)页面。我的问题是,如果我将指向 /category_A/page1 的规范 URL 放置在同一页面 /category_A/page1 中,考虑 SEO 是否有任何影响(坏/好/中性)?

这样做的原因是,将规范 URL 放入每个页面的头部比尝试找出不需要它的页面(它与规范页面相同)要容易得多