簡體   English   中英

php如何讀取包含#和/符號的URL

[英]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.

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