我正在嘗試通過捕獲被 Google 索引的非規范 URL 來清理我們的 SEO。
這是我們的一個非規范 URL 的示例
https://www.umpqua.edu/184-about-ucc/facts-visitor-info?start=1
我可以在 HTACCESS 檔案中使用這個 RegEx(見下文)來捕捉它,但它也禁用了我想要作業的其他 URL。它捕獲帶有/NUMBER-. 該數字的長度為兩到三個字符。
/([0-9]{2,3})-
所以我試圖讓它更加獨特。我試過這個(下)沒有成功。我的希望是捕捉網址edu/NUMBER-
(edu)/([0-9]{2,3})-
我也試過
(edu/)([0-9]{2,3})-
這是我完整的 HTACCESS 條目:
RewriteCond %{REQUEST_URI} ^(edu)/([0-9]{2,3})-$
RewriteRule .* index.php [G]
uj5u.com熱心網友回復:
添加“edu”只是我試圖使 RegEx 更具選擇性。所以當我使用這個運算式
/([0-9]{2,3})-時它運行良好,除了它也與這個 url 匹配。/component/weblinks/weblink/239-external-links/…但它不應該有。
重要的edu是它在 URL 路徑的開始之前。(但它不是 URL 路徑的一部分,它是Host標題的結尾部分。)在這種情況下,只需將正則運算式錨定到 URL 路徑的開頭。例如:
RewriteRule ^\d{2,3}- - [G]
這需要靠近根.htaccess檔案的頂部。
\d只是[0-9]. 請注意,上述指令中有 3 個引數,以空格分隔:
^\d{2,3}-...與 URL 路徑匹配的模式-...替換字串(在本例中為單個連字符)[G]...旗幟。在這種情況下G為gone(的縮寫R=410)。
以上將為任何以 2 或 3 位數字后跟連字符開頭的 URL 路徑提供“410 Gone”。替換字串中有一個連字符來明確表示“無替換”。在這里使用index.php是多余的,因為它被忽略了。
RewriteRule 請注意,在.htaccess.
您不需要單獨的條件(RewriteCond指令) - 比較可以更容易/更有效地在RewriteRule指令本身中執行。
所以上面會阻塞/184-about-ucc/facts-visitor-info?start=1但不會阻塞/component/weblinks/weblink/239-external-links/...,因為第二個 URL 中的 3 位數字不會出現在 URL 路徑的開頭。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/488482.html
