2010-10-27 412 views

回答

3

立即想到的办法:

RewriteEngine on 
RewriteBase /path/to/your/web/app 
RewriteRule ^Blog$ blog [R=301,L] 
RewriteRule ^Blog/(.*)$ blog/$1 [R=301,L] 

有可能比mod_rewrite的更好的方法,我不是100%肯定的是,外部重定向,将工作,因为他们应该 - 你可能需要完整的网址 - 但你去了。

2

这是最简单的.htaccess解决方案,将其放置在/.htaccess:

Redirect 301 /Blog /blog 

但它确实有限。如果你想抓住每一个可能的案例明智的拼写错误,并转发任何其他路径信息(如/Blog/foo/bar.html),用这个来代替:

RedirectMatch 301 ^/[Bb][Ll][Oo][Gg](?<!blog)(/.*)?$ /blog$1 

对于更多的选择,也有full .htaccess generators可用。

或者你可以使用ModRewrite-based rules实现最大的灵活性,但它可能是矫枉过正。

+0

你的第二个例子也会在任何位置匹配'/ blog'。 – Gumbo 2010-10-27 21:06:54

+0

非常正确 - 我很快就打了Add Answer。感谢您指出! REGEX现在已经修复。 – 2010-10-27 21:17:29

+0

的确是这一个是更好的方式我们虽然有送花儿给人著名的: “有些人,当遇到一个问题,认为‘我知道,我将使用正则表达式’现在他们有两个问题。” – Necronet 2010-10-27 22:01:11