0

我已经从这样的网址切换到我的 wordpress 博客:

/blog/2012/01/01/how-to-build-a-website

像这样更短的网址

/blog/?p=123

Wordpress 有一个像这样工作的搜索引擎

/blog/search/?s=how to build a website

并搜索s参数。

我正在尝试使用 .htaccess Redirectmatch 将所有旧网址重定向到以帖子标题作为s参数的搜索网址。

因此,如果用户奴役

/blog/2012/01/01/how-to-build-a-website

应该重定向到

/blog/search/?s=how to build a website

我已经编码了这个

Redirectmatch blog/\d+/\d+/\d+/(.+) http://www.mysite.com/blog/?s=$1

/但是这个正则表达式在它里面的-符号中的最后一个之后抓住了整个字符串。

这样,如果用户

/blog/2012/01/01/how-to-build-a-website

将被重定向到

/blog/search/?s=how-to-build-a-website

虽然我希望用户重定向到

/blog/search/?s=how to build a website

我该如何编写正则表达式来做到这一点?

编辑:是的,伙计们,我知道这种网址很难看 :) 但我只知道该怎么做,因为在这背后有一些我正在尝试解决的技术问题..

4

1 回答 1

0

请不要这样做。我知道使用短 URL 似乎很诱人。毕竟,你会得到 TinyURL 之类的东西。/blog/?p=123拥有不是更好/blog/2012/01/01/how-to-build-a-website吗?

不,这不对。

原因是当有人发布指向您博客文章的链接时,较长的 URL意味着什么。它告诉人们文章的年龄。它给出了标题。它可以帮助人们找到您的文章;毕竟,在为您的网站编制索引时,Google 会给予 URL 很大的权重。

URL 过去是为计算机构建的。类似的东西/blog/?p=123非常适合计算机;它易于解析,不需要任何额外的数据库查找。您可以写两篇名为“如何建立网站”的文章,并且博客引擎不必确保它-2在第二篇文章中添加了一个。它可以轻松映射到服务器上文件的实际结构,而无需在 URL 中构建结构。

但我们已经意识到,URL 也可以为人类构建。URL/blog/2012/01/01/how-to-build-a-website具有人类易于理解的形式。当然,键入的时间要长一些,但是您键入的所有位都更容易,并且大多数 URL 无论如何都是复制粘贴或单击。当然,这对计算机来说需要更多的工作,但这是值得的。它使 Internet 更友好。

所以我很抱歉,但我不会帮你。:)

于 2012-07-11T19:22:05.030 回答