标签: uri-fragment

我可以在服务器端应用程序(PHP,Ruby,Python等)上读取URL的哈希部分吗?

假设URL为:

www.example.com/?val=1#part2
Run Code Online (Sandbox Code Playgroud)

PHP可以val1使用GET数组读取请求变量.

哈希值是否part2也可读?或者这只是浏览器和JavaScript?

language-agnostic url http uri-fragment web

212
推荐指数
7
解决办法
21万
查看次数

如何使用htaccess将url重写为html锚标记(#)

我有一种情况,我想采取以下URL:

/ 1 /约翰

并使用Apache的htaccess文件进行重定向

/page.php?id=1&name=john#john

所以它转到一个名为john的html锚点.

我发现了很多关于转义特殊字符的引用,并添加了[NE]标志,以便重定向忽略#符号,但这些不起作用.例如,添加[NE,R]表示该网址仅作为原始网址显示在浏览器地址中:http://example.com/page.php?id = 1&name = john#john.

.htaccess mod-rewrite uri-fragment

16
推荐指数
3
解决办法
2万
查看次数

URL片段标识符是否已发送到服务器?

可能重复:
PHP可以读取URL的哈希部分吗?

(着名的?)网站mega.co.nz在URL中使用哈希标记链接到加密文件; 哈希标记包含密码后的URL部分,并声称加密发生在客户端.使用javascript进行客户端加密肯定是可行的,但是...不是发送到服务器的URL,因此泄露了服务器本身的密码?

URL看起来像

https://example.com/#!encryptedfilename_password
Run Code Online (Sandbox Code Playgroud)

http uri-fragment

12
推荐指数
1
解决办法
7685
查看次数

如何监控url中的更改(片段标识符 - URL的锚点部分)

我正在制作一个倾向于在一个页面中处理所有请求的网站(Ajax).所以我认为我可以捕获每个用户点击一个链接,并检查如果它在我的网站上我做了一些关于JavaScript的事情,比如ajax请求,例如,ELSE它会像往常一样打开链接!

在window.location上做一个手表没有用!而且我不知道是否还有#符号之后的url部分.注意:无论使用Gmail和Facebook做,我猜!他们使用的是这样的:
http://mail.google.com/mail/ #inbox
http://www.facebook.com/home.php #/收件箱/ ?REF = MB

请考虑一下:我喜欢在我的项目中使用jQuery,所以任何使用它的解决方案都是首选.

有任何想法吗?

html javascript url jquery uri-fragment

9
推荐指数
1
解决办法
5794
查看次数

URL片段作为SAML令牌身份验证的一部分丢失; 变通方法/标准模式?

一些Web应用程序身份验证协议(如WS-Federation和SAML协议,即所谓的"被动"协议,以及显然也是ASP.NET Forms身份验证,请参阅此StackOverflow问题,以及AppEngine,请参阅此GWT错误评论)丢失原始的'URL片段',即#-sign之后的部分.

会发生什么大致如下:在干净的浏览器中(所以没有缓存的信息/ cookie /登录信息)我打开URL(1)http://example.com/myapp/somepage?some=parameter#somewhere.这使浏览器请求(2)http://example.com/myapp/somepage?some=parameter,服务器将我重定向到我的身份提供者(包括身份验证请求中的URL(2)),最终我被重定向回到我来自的地方,即URL(2):这是服务器知道的唯一URL.但是我想去URL(1),并且URL片段('anchor')在此过程中已经丢失,实际上已经是第一步了.

这似乎是这些协议的基本限制,因为服务器根本不会看到URL片段.

我知道根据规范,浏览器从服务器请求(2),当我导航到(1)时,导致这个片段丢失限制SAML协议,WS-Federation等.我的问题是:怎么做我解决这个限制?

显而易见的解决方法是避免URL碎片,如本答案中所述.但是,对于我们的特定Web应用程序并不好,因为我们在单页GWT应用程序中使用可收藏的URL片段,以确保我们的应用程序中的导航不会导致页面重新加载.

我的问题:这种情况还有哪些其他解决方法或标准模式?

(我对GWT + SAML协议解决方案特别感兴趣.)

gwt uri-fragment saml-2.0 ws-federation gwt-places

5
推荐指数
1
解决办法
1844
查看次数

如何在 file:// URI/URL 协议中使用 #/fragment 标识符

我正在尝试使用 #fragment 标识符在特定锚点打开本地 html 文件,不幸的是,这似乎被文件处理程序删除了。例如运行

cmd.exe /c rundll32  url.dll,FileProtocolHandler "file://C:\test.html#anchor1"
Run Code Online (Sandbox Code Playgroud)

我的 Windows 应用程序中的系统调用似乎删除了 # 标记中的所有内容(不过,直接粘贴到浏览器中也可以)。使用“%23”转义哈希值也不起作用,因为没有打开任何内容(该文件似乎尚未找到)。

有没有办法通过系统调用在锚点打开本地文件?或者,还有其他方法可以在锚点打开本地 html 文件吗?

browser url file uri-fragment file-uri

5
推荐指数
0
解决办法
281
查看次数

使用#(数字符号,哈希,片段)将请求字符串URL记录到apache/httpd自定义访问日志?

虚拟主机中,我使用CustomLogmod_log_config来记录HTTP请求:

LogFormat "\"%r\"" custom
Run Code Online (Sandbox Code Playgroud)

问题是,整个查询字符串时,有一个没有被记录#(数字符号)的URL(访问domain.tld/slug/foo^bar#baz的结果"GET /slug/foo%5ebar HTTP/1.1"#baz省略).

是否有任何理由为什么#URL中的字符只会在字符串中的那个点之前被记录?是否有关于此的文档或解决方法?

apache logging httprequest special-characters uri-fragment

1
推荐指数
1
解决办法
1218
查看次数