0

我讀過所有其他類似的問題,但無法理解如何設置它,所以我的舊頁面重定向到他們應該在的地方。.htaccess和301重定向(動態頁面)wordpress

這裏是我的設置:

我的舊網站網頁:

http://www.oldsite.com/blog/?p=1234
http://www.oldsite.com/blog/?p=432
http://www.oldsite.com/blog/?p=xxxx

我想前兩個重定向,像這樣:

http://www.oldsite.com/blog/?p=1234 - >http://www.newsite.com/somewhere/on/mysite/
http://www.oldsite.com/blog/?p=432 - >http://www.newsite.com/somewhere/else/on/mysite/

,並擁有所有其他網頁(123,321,567,999,...)重定向到我的主頁,像這樣:
http://www.oldsite.com/blog/?p=* **** - >http://www.newsite.com/

提前感謝!

回答

0

我試過了@Jon Lin代碼,但它沒有用於我的WordPress網站。我認爲問題在於我正在運行WordPress ...我應該包含我的.htaccess代碼,但我並不認爲WP會是問題...

這是我爲了使其工作: 因爲它是WP網站,你需要把代碼放在WP mod_rewrite。這裏是重定向之前,我的.htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

後:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_URI} ^/blog/$ 
RewriteCond %{QUERY_STRING} ^p=998$ 
RewriteRule . /some/where/over-there? [L,R=301] 

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

希望這將幫助其他人的運行WP和有同樣的問題!

3

你需要使用mod_rewrite的來匹配查詢字符串的能力,但所有的規則將不得不以前任何WordPress的規則。

RewriteEngine On 

# http://www.oldsite.com/blog/?p=1234 -> http://www.newsite.com/somewhere/on/mysite/ 
RewriteCond %{QUERY_STRING} ^p=1234$ 
RewriteRule ^/?blog/$ http://www.newsite.com/somewhere/on/mysite/ [L,R=301] 

# http://www.oldsite.com/blog/?p=432 -> http://www.newsite.com/somewhere/else/on/mysite/ 
RewriteCond %{QUERY_STRING} ^p=432$ 
RewriteRule ^/?blog/$ http://www.newsite.com/somewhere/else/on/mysite/ [L,R=301] 

# http://www.oldsite.com/blog/?p=***** -> http://www.newsite.com/ 
RewriteCond %{QUERY_STRING} ^p=[0-9]+$ 
RewriteRule ^/?blog/$ http://www.newsite.com/ [L,R=301] 
+0

幾乎看來,我的.htaccess被兌現BE原因後,我做了還是到了錯誤的頁面,因爲它沒有改變之前的...有沒有辦法來強制刷新重定向? – Radi