希腊字符的 SEO 规范 URL

SEO Canonical URL in Greek characters

我有一个 URL 其中包括希腊字母

http://www.mydomanain.com/gr/τιτλος-σελιδας/20/

我正在使用 $_SERVER['REQUEST_URI'] 在我的页面头部向规范 link 插入值,就像这样

<link rel="canonical" href="http://www.mydomanain.com<?php echo $_SERVER['REQUEST_URI']; ?>" />

问题是当我查看页面源代码时,URL 显示为 ...CE%B3%CE%B3%CE%B5%CE%BB... 之类的字符,但是当单击它时,它显示的 link 应该是

这会引起搜索引擎的惩罚吗?

不,这是正确的行为。 url 中的所有字符都可以使用人类可读的形式或编码形式出现在页面源中,编码形式可以使用相关字符集的表翻译回来。单击 link 时,编码值将发送到服务器,服务器将其转换回人类可读的形式。

对可能导致网址出现问题的字符进行编码很常见 - 空格是一个常见示例 (%20),请参阅 Ascii tables。 %xx 语法指的是字符的等效十六进制值。

搜索引擎会意识到这一点并正确解释这些字符。

向浏览器发送 HTML 时,请确保服务器指定的字符集与您的 HTML 匹配。搜索引擎也会寻找这个来正确解码 HTML。正确的方法是通过 HTTP 响应 headers。在 PHP 中,这些设置为 header

header('Content-Type: text/html; charset=utf-8'); 
    // Change utf-8 to a different encoding if used

URLs 只能包含有限的 ASCII 字符子集。实际上,您不能在 URL 中使用 "greek characters"。此有限 ASCII 范围 之外的所有字符必须 percent-encoded.

现在,浏览器做两件事:

  1. 如果他们在您的 HTML 中遇到不符合此规则的 URL,即包含未编码的非 ASCII 字符,浏览器会在将请求发送到你的服务器。
  2. 对于一些(明确的)字符,浏览器将在地址栏中以解码形式显示它们,以增强用户体验.

所以,是的,一切都很好。事实上,您应该自己对 URL 进行百分比编码,如果它们还没有的话。