2013-10-06 75 views
1

我有一箇舊的網站爲我編程,現在我已經遷移到WordPress,但許多網站仍然有鏈接到舊的網址,我想重定向到Wordpress,因爲有404響應。重寫規則WordPress的自定義網址

舊的結構是:http://www.website.com/news/2013/june/01/slug-slug-slug-slug 在WordPress新:http://www.website.com/news/2013/06/01/slug-slug-slug

請注意,我只需要改變:

january -> 01 
february -> 02 
march -> 03 
april -> 04 
may -> 05 
june -> 06 
july -> 07 
august ->08 
september -> 09 
october -> 10 
november -> 11 
december -> 12 

我一定要包括WordPress的的.htaccess或東西rewrite.php文件?我一直在想,我只需要將%monthday%變量從數字更改爲字符串......但如果我更新WordPress,我可能需要再次更改它。

回答

1

如果你想使用mod_rewrite,你可以用12條規則做到這一點。我對wordpress本身並不熟悉,我不知道是否有通過Wordpress自身配置的「簡單」方式。添加以下規則發送到WordPress的index.php文件的所有請求的規則上面:

RewriteRule ^news/([^/]+)/january/([^/]+)/(.*)$ /news/$1/01/$2/$3 [R,L] 
RewriteRule ^news/([^/]+)/february/([^/]+)/(.*)$ /news/$1/02/$2/$3 [R,L] 
RewriteRule ^news/([^/]+)/march/([^/]+)/(.*)$ /news/$1/03/$2/$3 [R,L] 
#etc... 

與往常一樣,看到the documentation有關語法的信息被使用。

+0

它不起作用,但是不會引發任何錯誤。那麼,在wordpress中,它顯示我沒有找到404,所以重定向無法正常工作。我必須解釋,我有一個/ wordpress文件夾中的wordpress,所以我在.htacces中:#BEGIN WordPress RewriteEngine On RewriteBase/wordpress/ RewriteRule^index \ .php $ - [L] RewriteCond%{REQUEST_FILENAME}!-f RewriteCond%{REQUEST_FILENAME}!-d RewriteRule。 /wordpress/index.php [L] 這是否影響我的重寫規則?我知道在url中我必須添加mysite.com/wordpress – walolinux

+0

是的,正如我之前所說的,你必須在發送請求到wordpress索引文件的規則之前添加我的規則。在這種情況下,將規則放在'RewriteBase'後面。 – Sumurai8

0

會有這樣的12條規則,所以你可以有這樣的事情:

RewriteRule ^(news/[^/]+)/january/([^/]+/.+)$ $1/01/$2 [L,R=301,NC] 
RewriteRule ^(news/[^/]+)/february/([^/]+/.+)$ $1/02/$2 [L,R=301,NC] 
RewriteRule ^(news/[^/]+)/march/([^/]+/.+)$ $1/03/$2 [L,R=301,NC] 
RewriteRule ^(news/[^/]+)/april/([^/]+/.+)$ $1/04/$2 [L,R=301,NC] 
RewriteRule ^(news/[^/]+)/may/([^/]+/.+)$ $1/05/$2 [L,R=301,NC] 
RewriteRule ^(news/[^/]+)/june/([^/]+/.+)$ $1/06/$2 [L,R=301,NC] 
RewriteRule ^(news/[^/]+)/july/([^/]+/.+)$ $1/07/$2 [L,R=301,NC] 
RewriteRule ^(news/[^/]+)/august/([^/]+/.+)$ $1/08/$2 [L,R=301,NC] 
RewriteRule ^(news/[^/]+)/september/([^/]+/.+)$ $1/09/$2 [L,R=301,NC] 
RewriteRule ^(news/[^/]+)/october/([^/]+/.+)$ $1/10/$2 [L,R=301,NC] 
RewriteRule ^(news/[^/]+)/november/([^/]+/.+)$ $1/11/$2 [L,R=301,NC] 
RewriteRule ^(news/[^/]+)/december/([^/]+/.+)$ $1/12/$2 [L,R=301,NC] 

同時一定要對上面這些規則,在任何其他重寫規則。

+0

這是給我一個500錯誤在我的服務器:-( – walolinux

+0

修復它。抱歉有一個額外的'(' – anubhava

+0

好吧,現在它不會引發500錯誤,但wordpress引發404,所以它不工作。 wordpress在一個文件夾中:mysqite.com/wordpress的發展和我粘貼的網址也與wordpress,如果我把1月01它的工作,但與'一月'它不工作...我必須aad wordpress到你粘貼到我的重寫規則? – walolinux