簡體   English   中英

我應該在不更改URL的重定向上使用R = 301嗎?

[英]Should I use R=301 on redirect that doesn't change URL?

我已經將某些頁面轉換為SEO友好的URL。

舊格式:

mydomain.com/myscript.php?f=1&t=2

新格式:

mydomain.com/f1-t2-some-stuff-tagged-on.html

因為我在URL上標記了一些內容,所以此重定向是在php中完成的,其中在php上標記的內容需要一些邏輯和處理。 最終結果,我得到一個我滿意的URL。

為了處理新格式,我創建了一個重寫規則,以確保新格式可以通過myscript處理。 看起來像這樣:

RewriteRule ^f([0-9]+)-t([0-9]+)(.*)$ myscript.php?f=$1&t=$2&friendly=1 [NC,L]

這很好。 它不會更改瀏覽器中的URL,但會執行myscript.php並呈現頁面。 注意,我添加了一個變量'friendly'來告訴php腳本不要重定向到友好版本,而只是渲染頁面。

這一切都很好。 我敢肯定還有更優雅的解決方案,但我對此感到滿意,最重要的是,它對我的​​工作也很滿意。

所以我的問題是:我想指定新格式為永久格式(即301重定向)。 我應該在哪里指定? 在php中從舊格式重定向到新格式? 還是在.htaccess重寫中不更改URL? 我在考慮前者,但我想與你們確認。

PHP重定向(從舊格式到新格式) 永久的。 您不需要任何人使用舊的URL,那么您需要添加以下標頭:

header('Status: 301 Moved Permanently', false, 301); 

.htaccess重定向(從新格式到真實URL)是透明的。 這是您要建立索引的URL,因此不能指定[R=301] 如果這樣做,重定向將不再是透明的,並且URL也會更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM