快的一个。

我使用的是国防部的改写和有大多数的替代品:

  • 空的空间 = _
  • æ = ae
  • Æ = ae

等等。

什么是自然的更换字 /?

感谢

有帮助吗?

解决方案

下划线被认为是一个单词的字符,所以 foo_bar 是一个词,并不是两个单词。但连字是不是认为作为一个词的字符,所以 foo-bar 是两个单词。

所以你应使用连字符 - 无论你想要独立的两部分,下划线 _ 无论你想要的连接两个部分。在这种情况下的 / 这是用于单独的,我会喜欢的连字符 -.

其他提示

  • Æ=ae

你不一定需要这样做。你可以把非ASCII Unicode字URL只是为UTF-8编码的字节。所以:

http://en.wikipedia.org/wiki/%C3%86

显示在浏览器为:

http://en.wikipedia.org/wiki/Æ

要么可以粘贴到的地址栏。

空间和削减的编码可作为%20%2F。然而,这些形式仍然表现为百分比在浏览器,因为他们无保留的字符。所以他们不看起来很漂亮。还有一个附加问题与%2F在于传统脚本环境基础CGI不能阅读他们,并Apache默认情况下故意阻止它们停止这些脚本感到困惑和离开的安全漏洞。

所以我做标题蛞蝓通过消除完全:

# % ' ( ) ? [ ] (U+00AD soft hyphen)

随着任何控制符(U+0000至U+001F除了U+00A0,和U+007F到U+00BF).然后替换任何运行的:

" $ & * + , / : ; < = > @ \ ^ (U+0020 space) (U+000A newline)

与一个单一的下划线。这样可以消除的必要性%xx序列出现在网址。(Unicode字仍然会%xx序列,但用户不会看到他们.)

你可以使用连字符,而不是强调如果你愿意,无论是漂亮。搜索引擎的应收与。

eta重新评论其他的答案:

因为我使用php搜索的名字在我的数据库。所以每一个字已被转换回原来的字人不匹配将会被发现。

在这种情况下你不能做任何事情不可恢复的文字,虽然。你不能改变的'Æ'到'ae',空间必须编码为'%20'和斜线为'%2F'.这将导致在稍丑陋的网址,并将'%2F'会给你的部署问题上Apache和IIS。

如果你需要的关键只在一个标题则需要增加一个(唯一的索引)列在处理的蛞蝓来看,如上述建议。但是注意到你然后可以不重新命名的/正确的一页的标题,因为它将改变的弹头,打破了该网址。

一个共同的方法来解决这个是以包括一个数字ID除的弹头(请参阅,例如,如何这样做的话)。你也可以301-向在那里的弹头的名字是错误的最佳搜索引擎优化。

我会用一个短跑-谷歌分开的话这样的搜索引擎优化的目的,或甚至是一个强调_因为这些都是完美的可读性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top