题
快的一个。
我使用的是国防部的改写和有大多数的替代品:
- 空的空间 =
_
æ
=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-向在那里的弹头的名字是错误的最佳搜索引擎优化。
我会用一个短跑-谷歌分开的话这样的搜索引擎优化的目的,或甚至是一个强调_因为这些都是完美的可读性。