2014-09-22 77 views
-1

重寫URL我有一箇舊的網站,使用等環節的: www.oldsite.com/pages.asp?pageid=123456從舊網站

而且有一個新的網站,它使用的鏈接,例如: newsite.com/about

舊的網站出現在這樣的搜索結果中,我需要的owld網址重寫到新的站點。我已經搜索了幾個小時,並嘗試了許多關於RewriteRules的東西(沒有完全符合我的情況),並且沒有任何工作。我使用

redirect /pages.asp/

現在作爲一個臨時的解決方案,但我需要在搜索結果中的各個環節去到新的位置(如... ID = 12345/約) 。

任何幫助將不勝感激。謝謝!

澄清:

舊的網站完全是出於我的控制,它是301重定向到新的站點。因此,我想要重定向的實際網址格式爲newsite.com/pages.asp?pageid=123456。 我想將舊頁面重定向到匹配的新頁面。一些例子:

www.newsite.com/pages.asp?pageid=123456 >>newsite.com/about

www.newsite.com/pages.asp?pageid=85544 >>newsite.com/contact

+0

你想'/ pages.asp'所有請求(不依賴於'pageid'值)重定向到'/ about'新網站頁面?你的服務器(舊網站)是一個* Apache *服務器嗎?你有** mod_alias **(使用'Redirect')或** mod_rewrite **(使用'RewriteRule')嗎? – 2014-09-22 09:14:49

+0

@JustinIurman我編輯了這個問題來澄清。我不確定是否啓用了mod_alias和mod_rewrite,因爲服務器是託管的,我無法訪問這些信息。但Joomla安裝並正常工作,我可以使用重定向。 – mwishum 2014-09-22 17:35:19

+0

你有更多的網頁使用'pageid'來重定向嗎?因爲你必須爲每個案例編寫一個特定的規則(或者使用'RewriteMap') – 2014-09-22 19:46:24

回答

0

如果你只有10頁,你可以用簡單的規則來代替地圖。

你可以把這段代碼在你的htaccess的(這必須是在根文件夾)

RewriteEngine On 

# example rule for "about" 
RewriteCond %{QUERY_STRING} ^pageid=123456$ [NC] 
RewriteRule ^pages\.asp$ /about? [R=301,L] 

# example rule for "contact" 
RewriteCond %{QUERY_STRING} ^pageid=85544$ [NC] 
RewriteRule ^pages\.asp$ /contact? [R=301,L] 

# and so on for your other pages ID... 
+0

啊,我太親近了!謝謝!有一件事,有沒有辦法從重寫的URL中刪除'?pageid = 85544'? – mwishum 2014-09-22 20:28:43

+0

我的不好,我忘了。您只需在名稱頁面後添加'?'。你可以嘗試我編輯的答案。您必須清除瀏覽器的緩存才能看到新規則正常工作,因爲舊規則現在在緩存中 – 2014-09-22 20:30:54

+1

修復了它,再次感謝! – mwishum 2014-09-22 20:54:25