如何将example.com/blog/month/post重定向到example.com/post

时间:2016-01-12 09:44:30

标签: wordpress .htaccess redirect

我最近创建了一个与Serverpilot一起使用的新Droplet。因此,我使用All in one WP迁移插件创建了一个新的Droplet并从我的旧Droplet迁移了内容。在永久链接设置中,我保留了之前的永久链接结构,即example.com/post-name并保存了设置。

但是,突然之间,我可以看到有机流量(搜索引擎流量)到example.com/blog/dd-mm-yy/post-name,这显然是找不到404页面。

我不知道这是否是一个临时问题,因为我已经设置了正确的固定链接结构。

现在我想将来自example.com/blog/date/post-name的任何流量重定向到example.com/post名称。对于所有帖子。基本上,我想从所有帖子中删除/ blog / dd-mm-yy,以便可以将用户重定向到example.com/post-name。

从.htaccess做任何事情?

.htaccess文件如下所示:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ %{HTTP_HOST}/$1 [R=301,L] RewriteRule ^blog/(?:\d+/)+/([^/]+/?)$ /blog/$1 [L,NC,R=301] 
RewriteBase / 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule>

1 个答案:

答案 0 :(得分:0)

内部/.htaccess将此规则作为非常第一条规则

RewriteEngine On
RewriteBase / 

RewriteRule ^blog/(?:\d+/)+/([^/]+/?)$ /blog/$1 [L,NC,R=301]

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ %{HTTP_HOST}/$1 [R=301,L]

RewriteRule ^index\.php$ - [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L]