0

我知道您可以使用 mod rewrite 使 URL 看起来更好......

例如:

www.myblog.com/articles/read.php?article_ID=1234

至:

www.myblog.com/read/1234

通过使用:

RewriteRule ^([^_]*)/([^_]*)$ /articles/$1.php?article_ID=$2

现在如何向 URL 添加一些原本不属于 URL 的内容?

例如,如果我希望 URL 成为文章(标题)的描述而不是数字?

我怎样才能做到这一点:

http://www.myblog.com/read/This_is_the_heading_of_a_very_interesting_article

为了检索标题,我必须使用文章 ID 连接到我的数据库... mod_rewrite 有办法调用 php 脚本吗?

并且(如果可能的话)当 2 篇博客文章具有相同的标题时会发生什么?

后者可能是这行不通的原因 - 但我又觉得我已经看过很多次了......

我想一个解决方法可能是仍然将唯一标识符添加到 url 中以避免混淆,例如:

http://www.myblog.com/read/1234/This_is_the_heading_of_a_very_interesting_article

只是想知道如何实现这一点,任何建议表示赞赏!:-)

4

2 回答 2

1

您必须使用 PHP 来创建链接。当页面加载时,您可能已经从数据库中提取了文章信息,包括 ID、标题、文本等。当您建立链接时,您将使用数据库中的信息来创建带有标题的 URL 的页面。但是,重要的是ID。这就是您跟踪的方式,这样重复的标题就无关紧要了。

我可以使用此链接将您的帖子标题更改为将URL 重写为 URL 中未包含的内容,但是当您访问该标题时,服务器会忽略该标题。

查看此链接,因为它可能对您有所帮助

如何重写 SEO 友好的 url,如 stackoverflow

于 2013-06-28T01:11:37.783 回答
0

对于这样的事情,我倾向于使用斜杠作为分隔符,因为这往往是人们的习惯——这意味着你可以有一个“my_title_either/or”的标题,但这通常没问题。

RewriteRule ^([^/]*)/([^/]*)$ /articles/$1.php?article_header=$2

您将负责使文章标题独一无二。您的第二个版本,具有唯一 ID,将是

RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /articles/$1.php?article_id=$2

我根本没用过 3 美元;如果您有唯一的 id,则不需要其他任何东西,但如果您愿意,您仍然可以使用它:

RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /articles/$1.php?article_id=$2&title=$3
于 2013-06-27T23:49:36.877 回答