.htaccess 在重写日期时未按设计路由

.htaccess 在重写日期时未按设计路由

我有一个 .htaccess,但其性能不如我想象的那样。我有一个 WP 网站,其所有者决定将博客条目的基本路径移动为 /blog/,因此现在所有帖子都从搜索引擎被 404 重定向。虽然我已经成功重定向了帖子,但日期类别(如“/2015/03”)也需要重定向。我创建了一条规则,如下所示:

RewriteCond %{REQUEST_URI} ^/(200[1-9]|201[1-9])/(0[1-9]|1[0-2])
RewriteRule (.*) http://www.domain.com/blog/$1

适用于http://htaccess.madewithlove.be/

www.domain.com/2009/05 应转到:www.domain.com/blog/2009/05

但它对网站没有任何作用。我有一个开发版的网站可以摆弄,这样就可以测试和更改而不会损坏实时网站。完整的 mod_rewrite 部分:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/(200[1-9]|201[1-9])/(0[1-9]|1[0-2])/
RewriteRule ^(.*) http://www.domain.com/blog/$1

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

有什么线索吗?服务器是带有 Apache2 的 Ubuntu。

答案1

.htaccess文件 中^匹配该子目录的开始,因此您不应该^/在模式中使用。

此外,您的模式201[1-9]与 2010 不匹配。

相关内容