2012-02-16 100 views
-1

我在我的域名上使用WordPress。我原来安装在一个子目录:.htaccess重定向问题

www.example.com/wpblog/

现在我已经搬到了博客到我的网站的根,我已经从../2011改变了固定链接结构/ 03/post-name到../name-of-post。

我正在尝试将所有链接重定向到使用旧网址和结构的我的博客。

我用这个代码能够成功重定向从/ wpblog /站点根目录:

RewriteEngine On 
RewriteBase/
Redirect 301 /wpblog/ http://www.example.com/ 

但现在我需要改变旧固定链接结构删除/ 2011/03 /,留下我以www .example.com /帖子的名称(来自:www.example.com/wpblog/2011/03/name-of-post)。我加入这个代码,工程100%:

RedirectMatch 301 /([0-9]+)/([0-9]+)/(.*)$ http://www.example.com/$3 

麻烦的是,这也打破链接到我的媒体文件(www.example.com/wp-content/2011/03/name-of-media) 。因此,我需要从永久链接重定向(而不是/ wpblog /重定向)中排除/ wp-content /目录。因此,我改变了永久重定向:

RewriteCond %{REQUEST_URI} "/wp-content/" 
RewriteRule 301 /([0-9]+)/([0-9]+)/(.*)$ http://www.example.com/$3 

但是,这打破了整个网站,给我一个错误.....

我真的很感激,如果有人可以帮助我!我一直在撕掉我的头发!

+0

是什么,你得到的错误? – ThinkingMonkey 2012-02-16 09:26:18

回答

0

试试这个:

RewriteEngine on 
RewriteBase/

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule^- [L] 

RewriteCond %{REQUEST_URI} ^/wp-content/ [NC] 
RewriteRule %{REQUEST_FILENAME} !-f 
RewriteRule %{REQUEST_FILENAME} !-l 
RewriteRule /(?:[\d]+)/(?:[\d]+)/(.*)$ http://www.grvhi.com/$1 [R=301,L] 

RewriteRule ^index\.php$ - [L] 

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

试过 - 我得到一个500服务器错误.... – Erve1879 2012-02-16 09:30:40

+0

@ user1213425你的'RedirectMatch 301'仍然存在吗? – ThinkingMonkey 2012-02-16 09:31:49

+0

不,我删除了它,并用上面的代码替换了它 – Erve1879 2012-02-16 09:32:52