Regex 如何编写正则表达式来匹配除字符以外的所有内容?

Regex 如何编写正则表达式来匹配除字符以外的所有内容?,regex,apache,.htaccess,redirect,Regex,Apache,.htaccess,Redirect,我已从以下URL切换到wordpress博客: /blog/2012/01/01/how-to-build-a-website 像这样的短URL /blog/?p=123 /blog/search/?s=how to build a website Wordpress有一个这样的搜索引擎 /blog/?p=123 /blog/search/?s=how to build a website 并搜索sparams 我正在尝试使用.htaccess Redirectmatch将所有旧url

我已从以下URL切换到wordpress博客:

/blog/2012/01/01/how-to-build-a-website
像这样的短URL

/blog/?p=123
/blog/search/?s=how to build a website
Wordpress有一个这样的搜索引擎

/blog/?p=123
/blog/search/?s=how to build a website
并搜索
s
params

我正在尝试使用.htaccess Redirectmatch将所有旧url重定向到搜索url,并将文章标题作为
s
params

因此,如果用户serf

/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很难看:)但我知道怎么做,因为在这背后有一些技术问题我正试图解决。

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

不,不是

原因是当有人发布你博客文章的链接时,URL越长就意味着什么。它告诉人们这篇文章的年代。它给出了标题。它帮助人们找到你的文章;毕竟,在为你的网站建立索引时,谷歌给了URL很大的权重

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

但我们已经意识到,URL也可以为人类构建。URL
/blog/2012/01/01/how-to-build-a-website
有一种人类很容易理解的形式。当然,键入的时间要长一点,但是您键入的所有位都更容易,而且大多数URL都是复制粘贴的,或者只是点击。当然,这对电脑来说是更多的工作,但这是值得的它使互联网更加友好。


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

为什么要从漂亮的URL切换到丑陋的URL?为什么?我可以推荐插件吗?不使用.htacessDitto@AnthonyMills的问题,插件应该可以解决这个问题。长URL是Wordpress的优势之一。你得到了很好的搜索引擎优化。选择像你这样的短网址是一个很好的方法,可以确保人们无法在谷歌上搜索你的帖子。你读过吗?还有+1给Anthony和DogweatherYes,我知道这种网址很难看:)但我只想知道怎么做,因为在这背后有一些技术问题我正试图解决……无论如何,我同意你所说的一切