使用正则表达式重定向.htaccess

时间:2015-07-31 22:06:08

标签: regex wordpress .htaccess mod-rewrite

这里有很多.htaccess重定向帖子,但遗憾的是没有一个与我能找到的情况相符,而且我正在努力理解正则表达式以使其工作。我的情况:

在Wordpress上重建了一个房地产网站。该网站之前已经建立多年,因此有大量谷歌抓取的属性URL。新网站使用完全不同的固定链接结构和全新的属性,谷歌搜索控制台出现了大量的404错误。

旧结构:domain.com/2008/10/10/post-title/ 新结构:domain.com/properties/post-title /

我希望能够写一个.htaccess重定向来指向以/ 0000 / 00/00 /开头的所有URL到主页。我已经对正则表达式进行了一些研究,我发现了类似的情况,但没有一个我可以为我工作。他们似乎只是被忽视了。

我使用的指南网站:https://24ways.org/2013/url-rewriting-for-the-fearful/

我的相关.htaccess代码:

# BEGIN custom rewrite rules
RewriteEngine On
RewriteRule ^[0-9]{4}/[0-9]{2}/[0-9]{2}/.*/$ http://hardestyrealestate.com/ [R=301]
# END custom rewrite rules

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

基本上,我的自定义重定向是将正则表达式上的多个教程混合在一起以尝试匹配相关的“旧”网址的结果。有人可以帮我解决这个问题吗?我的自定义重定向是否在错误的位置? (它需要在wordpress重定向代码之后)吗?帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我不确定你系统的所有上下文,但我想知道,因为你把^放在匹配的开头,如果它可能是在添加http://或https:// at一开始因而不匹配?这是一种猜测。

另一种可能的想法是/对你的正则表达式处理器有特殊意义,你需要使用/代替。