首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.htaccess + wordpress,多个目录重定向

.htaccess + wordpress,多个目录重定向
EN

Stack Overflow用户
提问于 2012-12-15 14:17:36
回答 1查看 118关注 0票数 0

我正在移动约38个网站从Joomla转到wordpress。

我想保持相同的链接结构,因为SEO。不幸的是,最后一位开发人员对他们构建链接的方式粗心大意,所以我有一些古怪的要求要完成。

也就是说,有时他们的博客是index.php/ blog -4,同时是index.php/blog和index.php/blog-5。

在wordpress中,我制作了permalinks

index.php/blog-5/%postname%

我以前从未编辑过.htaccess,但是我想要做的是重定向到

/blog/* -> /blog-5/*

/博客-4/*->/博客-5/*

我会写些什么来完成这个任务?

编辑

我在执行Michael的答案时遇到了困难。下面是我的.htaccess的样子。我试过把它放在里面和外面。

代码语言:javascript
复制
# 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]


RewriteCond %{REQUEST_URI} !^/blog-5
RewriteRule ^blog(-.+)?/(.*) blog-5/$2 [L,R=301]

</IfModule>

# END WordPress
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-15 14:22:17

这是一个相当简单的RewriteRule。使用表达式(-4)?可以选择匹配-4,并将其与请求一起重定向到/blog-5/blog/。在(.*)之后的第二个/组将所有其他内容捕获到$2中。

代码语言:javascript
复制
RewriteEngine On
RewriteRule ^blog(-4)?/(.*) blog-5/$2 [L]

以上将进行无声的内部重写。如果您实际上想要重定向并让浏览器显示新的URL,请将[L]更改为[L,R=301]

注意:实现blog-4可能是一个变量名,使用(-.+)?来匹配任何内容。但是你也需要一个RewriteCond,所以它与blog-5不匹配

代码语言:javascript
复制
RewriteCond %{REQUEST_URI} !^/blog-5
RewriteRule ^blog(-.+)?/(.*) blog-5/$2 [L]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13892983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档