2011-10-09 178 views
0

嗨,我现在正在迁移一个网站。我有大约400个我需要重定向的链接。我知道如何在每个人的htaccess中设置一个重定向,但是会建立一个规则。我想重定向多个链接的规则

www.example.com/2011/10/the-news-post

重定向到

www.example.com/home/post/the-news-post

可以做到这一点吗?如果是这样的代码是什么样的?

感谢,

格雷戈尔

+0

是否有您想使用“_”进行重定向的特定原因?我认为使用“ - ”会更适合您的搜索引擎优化 –

+0

事实上 - 使用继续使用'-' - 建议通过'_'。 – LazyOne

+0

我现在使用连字符 - 是一个疏忽!助教。 – gelviis

回答

0

为了保持连字符:

RewriteRule ^[0-9]{4}/[0-9]{1,2}/([^/]+)$ [R=302,L] 

为了改变连字符为下划线(这也是我不建议):

RewriteRule ^([0-9]{4}/[0-9]{1,2}/[^/]+)-([^/]+)$ $1_$2 [N] 
RewriteRule ^[0-9]{4}/[0-9]{1,2}/([^/]+)$ home/$1 [R=302,L] 

简要说明: 第一条规则与任何UR L与日/月,然后是包含连字符的文章。它会替换连字符,然后重新运行所有重写规则。一旦没有连字符,它将通过第二条规则,将URL重写为home/articlename。

演示:http://cerebraldonkey.com/mod_rewrite2/2011/5/some-article-containing-several-hyphens

+0

谢谢模拟。我现在用所有网址上的超链接替换下划线(不确定为什么我认为用下划线去做是个好主意...... DOH!)。所以我做了所有我需要的是:RewriteRule^[0-9] {4}/[0-9] {1,2} /([^ /] +)$ home/post/$ 1 [R = 302, L]? – gelviis

+0

没错。这就是你所需要的。 –