簡體   English   中英

刪除多個參數並重寫url Htaccess

[英]Remove multiple parameters and rewrite url Htaccess

我正在嘗試使用htaccess或其他解決方案重寫以下Url用於SEO和用戶友好目的。 我已經搜索並找到了很多答案,但沒有一個給我多個參數,我沒有在這方面取得進展。

mysite.com/myfile.php?dept=1&prodid=161&user=2018&ulevel=1&parentcust=1&prodname=My widget

mysite.com/products/mywidget

如果我的小工具有空格或撇號我需要刪除它們。 例如, Tiger's eye widget應該是tigerseyewidgettigers-eye-widget

您不必僅使用重寫來解決問題。

首先,讓我們去掉你的查詢字符串:

  • 用戶ID和用戶級別不屬於那里 - 在查詢字符串中包含這些內容很危險。 如果我在瀏覽器中將其更改為user = 1&ulevel = 5,那么我是否突然管理員可以訪問所有區域? 相反,使用會話並在那里存儲用戶ID和ulevel
  • 您是否真的需要產品ID以及查詢字符串中的產品名稱? 我會說:刪除產品名稱,id應該是足夠的信息,以便您檢索產品名稱。
  • 親子:這是什么? 你真的需要在查詢字符串中嗎? 如果我改變了價值怎么辦? 看起來像屬於會話的東西。

在剝離之后,你剩下的就是myfile.php?dept = 1&prodid = 161 - 現在這是更容易重寫的東西!

如何改寫是另一個問題。 有很多關於如何將基於查詢字符串的請求重寫為“漂亮網址”的示例。 Tiger's eye widget改為tigers-eye-widget也有很好的記錄。

但是..誰生成這些鏈接? 如果您生成這些鏈接,為什么不轉過它並將您的產品鏈接到例如mysite.com/tigers-eye-widget.html,然后在PHP中將“tigers-eye-widget.html”映射到產品ID 161和dept 1?

您的問題應該僅適用於人們可能已添加書簽或仍會顯示在搜索結果中的舊版網址。 但對於那些情況,重定向它們而不是重寫它們是完全可以接受的。 因此,您可以將映射保留在數據庫或文本文件中,使用PHP處理請求並執行301重定向到新URL - 這樣您就可以告訴搜索引擎將舊URL替換為新URL,您不必擔心關於復雜的多個.htaccess重寫規則。

暫無
暫無

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

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