Pau*_*ulo 156 url friendly-url
我需要建立一个有文章的网站,我想为它制作友好的URL,例如页面的URL
标题:文章测试
应该成为:http://www.example.com/articles/article_test.
当然我需要删除标题中的一些字符,?或者#,但我不确定要删除哪些字符.
谁能告诉我哪些角色可以保存?
Ski*_*ead 194
引用RFC 3986的 2.3节:
"URI中允许但没有保留目的的字符称为未保留字符.这些字符包括大写和小写字母,十进制数字,连字符,句点,下划线和波浪号."
ALPHA DIGIT "-" / "." / "_" / "~"
Run Code Online (Sandbox Code Playgroud)
请注意,RFC 3986列出的保留标点符号少于旧版RFC 2396.
Gar*_*Ray 101
您需要注意两组字符:保留和不安全.
该保留的字符是:
通常认为不安全的人物是:
我可能已经忘记了一个或多个,这让我回应了Carl V的回答.从长远来看,你可能最好使用允许字符的"白名单"然后编码字符串,而不是试图及时了解服务器和系统不允许的字符.
car*_*arl 40
您最好只保留一些字符(白名单),而不是删除某些字符(黑名单).
只要您正确编码,您就可以在技术上允许任何角色.但是,要回答问题的精神,你应该只允许这些字符:
其他一切都有潜在的特殊含义.例如,您可能认为可以使用+,但可以用空格替换.并且也很危险,特别是如果使用一些重写规则.
与其他评论一样,请查看标准和规范以获取完整的详细信息.
Bee*_*jor 29
这些是安全的(理论上/规范),基本上除了域名以外的任何地方.
百分比编码未列出的任何内容,你很高兴.
A-Z a-z 0-9 - . _ ~ ( ) ' ! * : @ , ;
Run Code Online (Sandbox Code Playgroud)
仅在特定URL组件中使用时才安全; 小心使用.
Paths: + & =
Queries: ? /
Fragments: ? / # + & =
Run Code Online (Sandbox Code Playgroud)
根据URI规范(RFC 3986),所有其他字符必须是百分比编码的.这包括:
<space> <control-characters> <extended-ascii> <unicode>
% < > [ ] { } | \ ^
Run Code Online (Sandbox Code Playgroud)
如果需要考虑最大兼容性,请将字符集限制为AZ az 0-9 - _.
(仅限文件扩展名的句点).
Phi*_*zen 17
查看RFC3986 - 统一资源标识符(URI):通用语法,您的问题围绕URI 的路径组件.
Run Code Online (Sandbox Code Playgroud)foo://example.com:8042/over/there?name=ferret#nose \_/ \______________/\_________/ \_________/ \__/ | | | | | scheme authority path query fragment | _____________________|__ / \ / \ urn:example:animal:ferret:nose
引用第3.3节,URI的有效字符segment类型为pchar:
pchar = unreserved/pct-encoded/sub-delims /":"/"@"
其中细分为:
ALPHA / DIGIT / "-" / "." / "_" / "~"
pct-encoded
"!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
":" / "@"
或者换句话说:你可以使用来自任何(非控制- )字符的ASCII表,除了 /,?,#,[和].
这种理解得到RFC1738 - 统一资源定位器(URL)的支持.
小智 12
unreserved = ALPHA/DIGIT /" - "/"." /"_"/"〜"
cha*_*aos 11
从你描述的背景来看,我怀疑你实际上想要做的是一种叫做"SEO slug"的东西.对他们来说最好的一般做法是:
因此,作为一个例子,一篇名为"使用!@%$*代表在漫画中咒骂"的文章会得到一个"使用代表 - 咒骂漫画".
| 归档时间: |
|
| 查看次数: |
151053 次 |
| 最近记录: |