搜尋引擎的 URL 重寫和索引
對於網站,我希望使用 URL 重寫來輕鬆訪問頁面和更好的索引。
例如,假設關於莫扎特的頁面是:
www.site.ext/composers/index.php?cmd=composers&id=123
而不是這個,我希望訪問者輸入:
www.site.ext/Mozart
並到達同一頁面。我還希望搜尋引擎中的機器人索引“友好”地址並且不知道“不友好”真實地址。
下面的兩個
.htaccess
文件都可以工作並且可以訪問相同的內容。在瀏覽器中,第一個在地址欄中保留友好的url(即
www.site.ext/Mozart
),#Options +FollowSymlinks RewriteEngine On RewriteBase / #AllowOverride all RewriteCond %{HTTP_HOST} . RewriteRule ^Mozart$ composers/index.php?cmd=composers&id=123 [L]
而第二個,帶有附加
R=301
選項,永久重定向到“不友好”地址:#Options +FollowSymlinks RewriteEngine On RewriteBase / #AllowOverride all RewriteCond %{HTTP_HOST} . RewriteRule ^Mozart$ composers/index.php?cmd=composers&id=123 [R=301,L]
由於類別名稱永遠不會隨著時間的推移而改變,我假設第一種情況——僅在沒有可感知重定向的情況下重寫 URL——在這種情況下會更好,因為搜尋引擎會儲存和顯示友好的 URL,而不是不友好的 URL。真的是這樣嗎?
關於整個站點的內部連結(即頁面中的錨點),我假設我應該使用 PHP(或等效的)來動態編寫其友好的 URL 版本,而不是預設的不友好的版本,這樣搜尋引擎就不會索引不友好的 URL。
作為補充,為了避免重複 URL 的索引(以防程式碼中的遺漏),我認為在每個頁面中將其友好 URL 提及為規範連結是明智的:
<head> ... <link rel="canonical" href="http://www.site.ext/Mozart" /> ... </head>
上述假設是否正確或有禁忌症?
由於類別名稱永遠不會隨著時間的推移而改變,我假設第一種情況——僅在沒有可感知重定向的情況下重寫 URL——在這種情況下會更好,因為搜尋引擎會儲存和顯示友好的 URL,而不是不友好的 URL。真的是這樣嗎?
是的。
關於整個站點的內部連結(即頁面中的錨點),我假設我應該使用 PHP(或等效的)來動態編寫其友好的 URL 版本,而不是預設的不友好的版本,這樣搜尋引擎就不會索引不友好的 URL。
是的。僅連結到友好/“漂亮”的 URL。真實/“醜陋”的 URL 永遠不會暴露給任何類型的使用者、搜尋引擎或機器人。真實/“醜陋”的 URL 完全在您的應用程序內部。
您可能需要做的唯一額外步驟是,如果這是一個較舊的站點,並且舊的/“醜陋”的 URL 已經被搜尋引擎索引或被外部站點連結到。在這種情況下,您還必須實施從舊的/“醜陋”的 URL 到新的/“漂亮”的 URL 的外部 301 重定向,以保留 SEO。
我認為在每個頁面中將其友好 URL 提及為規範連結是明智的
是的,你可以這麼做。這也確保了任何(錯誤的)URL 參數都不會被編入索引。
以上假設是否正確
是的。