2012-02-16 127 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