【发布时间】:2012-07-11 18:09:06
【问题描述】:
我已经从这样的网址切换到我的 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
如何编写正则表达式来做到这一点?
编辑: 是的,伙计们,我知道这种网址很难看 :) 但我只是知道该怎么做,因为在这背后有一些我正在尝试解决的技术问题..
【问题讨论】:
-
为什么要从漂亮的 URL 切换到丑陋的 URL?为什么?
-
我可以推荐插件smart 404,它应该可以在不使用.htacess的情况下解决这个问题
-
同上@AnthonyMills 的要求。长 URL 是 Wordpress 的优势之一。你会得到很棒的搜索引擎优化。像您一样选择较短的网址是确保人们无法通过 Google 搜索您的帖子的好方法。
-
你读过search and replace in apache htaccess a rewriterule,并为安东尼和多格威瑟+1
标签: regex apache .htaccess redirect