2013-12-21 126 views
0

如何將301重定向動態url轉換爲靜態url?301將動態URL重定向到靜態URL

在這種情況下

www.example.com/book.php?book=title 

www.example.com/book/title 

當請求應該轉換爲靜態URL動態URL。 應該轉換動態網址,而應該在地址欄中顯示靜態網址。

我得到這個代碼:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^user/([^-]+)/?$ /user.php?id=$1 [NC,L] 

可有一個人給我一個301重定向動態URL蒂奧靜態的URL。 在此先感謝。

+0

'.htaccess'目標'user.php'。作爲一項規則,您是否想要添加'book.php'? –

+0

是的。但我感到301動態重定向到靜態url。你有什麼想法分享? –

回答

0

最簡單的方法是在您的.htaccess文件中使用Apache的mod_rewrite。要在地址欄中獲得「靜態」(seo /幻想)網址,您需要一個外部重定向。爲了讓服務器做一些合理的事情,你需要進行內部重寫。爲了防止無限循環,您需要使用%{THE_REQUEST}技巧。

%External redirect 
RewiteCond %{THE_REQUEST} ^(GET|HEAD)\ /book\.php\?book=(.*)\ HTTP 
RewriteRule^/book/%1? [R,L] 

%Internal rewrite 
RewriteRule ^book/(.*)$ /book.php?book=$1 [L] 

上述規則未經測試(但他們應該工作)。如果他們工作,請將[R,L]更改爲[R=301,L]。這將使重定向永久。這將在瀏覽器中緩存重定向,並減少對服務器的請求數量,並使搜索引擎「記住」正確的URL。你不想在測試的時候這樣做,因爲它可能會顯示先前的嘗試(被緩存),而不是實際發送請求到服務器。