[英]php how to read URL including # and / symbols
我有一個帶有零件編號數據庫的網站。 我的經理希望能夠輸入:
www.site.com/products/part#
並讓該頁面自動將您帶到相關頁面。
現在,我擁有該網址並對其進行mod-rewrite頁面:
www.site.com/search.php?sku=xxxx
而一個PHP腳本將$ _GET sku並進行搜索,問題是,某些零件號中帶有#和/符號,例如:
www.site.com/products/VS816UT#ABA
我可以使用mod-rewrite解決任何斜杠,但是瀏覽器會在$ _GET看到它之前刪除#符號。
有辦法解決嗎?
哈希值之后的所有內容( #
)均不會發送到網絡服務器。
如果要解決此問題,為什么不在#ABA
加上斜杠:
www.site.com/products/VS816UT/ABA
並使用mod_rewrite
將其正確映射到您的PHP文件。
根據網絡標准,#符號保留給瀏覽器中的定位標記。
這樣做應該沒有問題,但是您想要的是/ products /的處理程序,該處理程序獲取url的結尾部分(像codeigniter這樣的框架很擅長於此)。
您需要一個單獨的頁面處理程序,該處理程序根據需要分配盡可能多(或盡可能少)的url。
不幸的是,至少某些瀏覽器會刪除#及其后面的所有內容。 我使用帶有#的網址進行了測試,並監視了瀏覽器通過tcpdump發送的內容,並得到了以下信息:
網址:
http://127.0.0.1/onepage/products/zss#www?b=A#B
tcpdump o / p:
GET /onepage/products/zss
大概服務器到服務器是唯一可行的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.