Regex 如何编写正则表达式来匹配除字符以外的所有内容?
我已从以下URL切换到wordpress博客: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
/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,我知道这种网址很难看:)但我只想知道怎么做,因为在这背后有一些技术问题我正试图解决……无论如何,我同意你所说的一切