gpt4 book ai didi

mysql - 使用数据库值在 htaccess 中为动态网页重写 URL?

转载 作者:行者123 更新时间:2023-11-29 02:31:48 25 4
gpt4 key购买 nike

如果我有一个动态页面,它接受一个 id 参数,例如 example.com/posts.php?id=2,我如何在 htaccess 中创建一个 RewriteRule,以便 url 显示帖子的标题而不是它的 id,例如 posts.php?id=2 显示标题为“PHP 很酷”的帖子,我希望将 url 重写为 example.com/2/php-is-cool 或类似的东西?如果将标题值存储在 MySQL 数据库中是否可能?

附加信息:

这是我的 htaccess 的样子:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain\.com$
RewriteRule (.*) http://www.mydomain.com/$1 [R=301,L]

ErrorDocument 404 /index.php
ErrorDocument 403 /index.php
php_value post_max_size 20M

基本上,我有一个 MySQL 数据库,它将博客文章存储在一个名为 posts 的表中。 posts 表有一个 id 属性(这是自增主键),一个 title 属性和一个 content 属性。当我访问 mydomain.com/posts.php?id=X 时,它将在网页上的数据库中显示我的 id 为“X”的帖子。我只是希望能够重写 URL,使其显示页面标题。 我这样做主要是为了 SEO,而不是美观。这可能使用 htaccess,还是我必须以不同的方式处理?

最佳答案

重写规则适用于后端 (apache) 处理 URL 的方式。使用 mod_rewrite 重写这些 URL 不会影响用户在浏览器的 URL 栏中看到的内容,除非您将用户重定向到新的 URL(例如,使用 302 重定向),这会导致浏览器重新加载页面。

您可以使用 HTML5 pushstate 功能实现您的要求(如果该浏览器不支持 pushstate,则回退到 URL 哈希)。

查看此 URL 了解更多详情:

http://badassjs.com/post/840846392/location-hash-is-dead-long-live-html5-pushstate

此外,您还可以使用 BackboneJS 及其路由器功能在浏览器中处理您的页面和 URL 处理逻辑。

http://backbonejs.org/#Router

这是一种非常特定于应用程序的解决方案,在不知道您的确切配置、应用程序逻辑等的情况下,这个答案无法提供更多细节。

关于mysql - 使用数据库值在 htaccess 中为动态网页重写 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12022302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com