Dot-Htaccess

搜尋引擎的 URL 重寫和索引

  • April 19, 2018

對於網站,我希望使用 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 參數都不會被編入索引。

以上假設是否正確

是的。

引用自:https://serverfault.com/questions/908503