将用户标题(文本)转换为 URL,改为空格、#、&和其他角色?

发布于 2024-09-03 10:49:30 字数 373 浏览 4 评论 0原文

我的网站上有一些表格,用户可以在其中添加新页面。我必须生成 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清风夜微凉 2024-09-10 10:49:31

您不是查询数据库来获取内容吗?在这种情况下,只需获取同一查询中的标题字段即可。

可靠地从 URL 获取标题的唯一方法是对其进行“URL 编码”(在 PHP 中,您使用 urlencode() 函数)。但是,您最终会得到如下 URL:

My%20page%20title

您无法替换任何字符,因为这样您就没有唯一的 URL。例如,如果您用下划线替换空格,则以下标题都将生成相同的 URL:

My page title
My_page title
My_page_title

简而言之:不必担心额外的数据库命中,只需使用 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:

My%20page%20title

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:

My page title
My_page title
My_page_title

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文