将用户标题(文本)转换为 URL,改为空格、#、&和其他角色?
我的网站上有一些表格,用户可以在其中添加新页面。我必须生成 SEO 友好的 URL 并使该 URL 独一无二。 我可以在 URL 中显示哪些字符,我知道我应该将空格转换为下划线:
" "->"_" 并在它之前 - 将下划线转换为其他内容,例如:
"_"->/下划线
这很容易URL 返回的标题。
但在我的特定标题中,可以是键盘上的所有字符,甚至是:@#%:"{/\';.>
在 URL 中不使用这些字符是否有一些禁忌?
重要的是:
-轻松生成 URL 和标题URL 返回(无需查询数据库)
- 每个标题都是唯一的,因此 URL 必须太
- SEO 友好的 URL
I have some form on the website where users can add new pages. I must generate SEO friendly URLs and make this URLs unique.
What characters can I display in URL, I know that spaces I should convert to underscore:
" "->"_" and before it - underscores to something else, for example:
"_"->/underscore
It is easy make title from URL back.
But in my specific title can be all characters from keyboard, even : @#%:"{/\';.>
Are some contraindications to don't use this characters in URL?
Important is:
-easy generating URL and title from URL back (without queries to database)
-each title are unique, so URL must be too
-SEO friendly URLs
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不是查询数据库来获取内容吗?在这种情况下,只需获取同一查询中的标题字段即可。
可靠地从 URL 获取标题的唯一方法是对其进行“URL 编码”(在 PHP 中,您使用
urlencode()
函数)。但是,您最终会得到如下 URL:您无法替换任何字符,因为这样您就没有唯一的 URL。例如,如果您用下划线替换空格,则以下标题都将生成相同的 URL:
简而言之:不必担心额外的数据库命中,只需使用 SEO 友好的 URL,限制为小写 az、0-9 和破折号,例如
my-page-title
。就像我说的,无论如何你都可以在一个查询中获取所有内容。Aren't you querying the database to get the content anyway? In which case just grab the title field in the same query.
The only way to reliably get the title back from the URL is to 'URL encode' it (in PHP you use the
urlencode()
function). However, you will end up with URLs like this:You can't replace any characters because you will then not have unique URLs. If you are replacing spaces with underscores, for example, the following titles will all produce the same URL:
In short: don't worry about one extra database hit and just use SEO-friendly URLs by limiting to lowercase a-z, 0-9 and dashes, like
my-page-title
. Like I said, you can just grab everything in one query anyway.