2017-04-20 29 views
0

我試圖在我轉換爲WordPress的網站的.htaccess文件中設置301重定向。.htaccess 301重定向從/?p = blahblahblah

舊的網站有看起來像下面

http://www.example.com/?p=about 
http://www.example.com/?p=contact-us 

重寫規則我都試過低於,但沒有工作的網址。

Redirect 301 /?p=about /about/ 
Redirect 301 /?p=contact-us /contact-us/ 

Redirect 301 /?p=about http://www.example.com/about/ 
Redirect 301 /?p=contact-us http://www.example.com/contact-us/ 

Redirect 301 /\?p=about /about/ 
Redirect 301 /\?p=contact-us /contact-us/ 

Redirect 301 /\?p=about http://www.example.com/about/ 
Redirect 301 /\?p=contact-us http://www.example.com/contact-us/ 

即使我的301重定向超出了WordPress重定向規則,似乎WordPress的重寫規則仍在先踢。顯示的頁面是顯示「Nothing Found」的博客卷頁面,因爲我沒有帖子。

有沒有辦法讓這些重定向工作?

+0

您是否嘗試過在你的瀏覽器中打開一個私人標籤,看是否重定向工作(或嘗試你以前從未訪問過該網站瀏覽器上)? 301重定向是永久的,大多數瀏覽器都會緩存,直到它被明確清除。 – jackmullen

+0

剛剛嘗試過。還是行不通。 – unu

回答

0

你是對的:如果將重定向規則放在WordPress之後,則不會考慮重定向規則。這條線:

RewriteRule . /index.php [L] 

將重定向一切,樂[L]在結束意味着這是最後一個規則。

這裏是將你應該把你的.htaccess文件:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 

# old site redirections 
RewriteRule /?p=about /about/ [L,R=301] 
RewriteRule /?p=contact-us /contact-us/ [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress