2012-06-13 121 views
0

我用htaccess重寫了我的網址,現在我想重定向舊網址到新的網址,但我無法弄清楚如何做到這一點。.htaccess url重寫後重定向舊頁面url

這是用我的重定向規則:

RewriteRule ^page/([^/]*)/$ /page.php?name=$1 [L] 

舊的URL的外觀是這樣的:page.php文件名=頁面名稱

新的URL的是這樣的:/頁/頁面級名稱/

+0

那麼,什麼是錯的?你遇到什麼問題? –

回答

0

當您想要使用GET參數重定向url時,這有點複雜。

這裏有一個竅門做:

RewriteRule ^page\.php$ %{QUERY_STRING} [C] 
RewriteRule name=(.*) /page/$1/? [R=301,L] 

解釋相關:

  • 首先,您重定向page.php?name=page-name?name=page-name
  • 然後,你問使用以下規則這個結果(與[C]標籤)
  • 三,您重定向page-name,選(.*)page/page-name/
  • 最後一招,如果你沒有放上最後的?,你的查詢字符串將被追加到你的結果中,你將會得到這樣的url:page/page-name/?name=page-name。使用無用的?擦除舊的GET參數。

找到一些信息在這裏:

+0

我試圖使用您的代碼和重定向工作,但與重寫規則一起使用時出現錯誤: 「該頁面未正確重定向 Firefox檢測到服務器正在重定向該地址的請求一種永遠不會完成的方式。「 –

+0

嘗試用'^ name =(。*)$'替換規則(請注意它在基本測試archi上工作正常) – zessx