2014-03-03 111 views
0

我試圖實施301重定向在我自己託管的WordPress博客上。WordPress .htaccess不適用於301重定向

我試圖通過包含Apache的標準mod_rewrite腳本的.htaccess文件來做到這一點。

我也試圖通過GoDaddy的301重定向工具來做到這一點。

此外,我還嘗試使用通常可靠的Simply 301重定向WordPress插件。

以上都沒有工作。

的301再直接用於Apache的格式,我用在.htaccess是:

RewriteRule ^/blog/example-post.html? /blog/example-post/ [R=301,L,NC] 
RewriteRule ^/blog/another-post? /blog/another-post-with-new-url/ [R=301,L,NC] 

正如你所看到的,博客坐在/博客/。有一個包含以下根另一個.htaccess文件:

rewriteengine on 


<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
Header set Expires "Wed, 1 Jan 2020 20:00:00 GMT" 
</FilesMatch> 
<ifmodule mod_deflate.c> 
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript 
</ifmodule> 
rewritecond %{HTTP_HOST} ^mywebsite.com 
rewriterule (.*) http://www.mywebsite.com/$1 [R=301,L] 
rewritecond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.php\ HTTP/ 
rewriterule ^(.*)index\.php$ /$1 [R=301,L] 
rewritecond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index-cc\.php\ HTTP/ 
rewriterule ^(.*)index-cc\.php$ /$1 [R=301,L] 
rewritecond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.html\ HTTP/ 
rewriterule ^(.*)index\.html$ /$1 [R=301,L] 
rewritecond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index2\.html\ HTTP/ 
rewriterule ^(.*)index2\.html$ /$1 [R=301,L] 
rewritecond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index_OLD\.html\ HTTP/ 
rewriterule ^(.*)index_OLD\.html$ /$1 [R=301,L] 

我刪除這個從的.htaccess暫看是否有與WordPress的.htaccess文件有任何衝突。這似乎並非如此。

我還插入了將WordPress中使用的重定向到根.htaccess文件中,但是這並沒有解決問題。

我已經用完了我所知道的選項。有什麼其他建議可以解決這個問題嗎?

回答

0

您需要刪除您的htaccess文件的規則領先斜線:

RewriteRule ^blog/example-post.html /blog/example-post/ [R=301,L,NC] 
RewriteRule ^blog/another-post /blog/another-post-with-new-url/ [R=301,L,NC] 

,擺脫了?部分。

+0

我已更新腳本以反映您的建議,但仍然沒有運氣。這裏必須有其他東西,因爲託管服務(GoDaddy)自己的重定向工具也無法正常工作,Simply 301也沒有,我會想象格式重新指向正確。 – AmitMegaTherion