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