【发布时间】:2011-12-01 08:40:42
【问题描述】:
假设我有以下链接:
www.blahblah.com/#!?page=index
如何将其转换为以下之一:
-
www.blahblah.com/#!/index(这个应该是用mod_rewrite制作的) -
www.blahblah.com/ajax/index(仍然是 mod_rewrite,但 #! 替换为 ajax) -
www.blahblah.com/index(该页面将像 facebook 一样使用 AJAX 加载,但 #! 将被隐藏)
谁能给我上面每个问题的例子?
非常感谢!
【问题讨论】:
-
来吧伙计们,这不是一个糟糕的问题,尽管使用 mod_rewrite 的前提是有缺陷的。仔细看
-
为什么人们不赞成这个?
-
#octothorpe 之后的东西称为路径片段。服务器和 mod_rewrite 都不会看到它。它必须在客户端处理。 -
@KristianAntonsen:真的吗?他希望他提供的第一个 URL 在地址栏中以不同的方式显示。我没有问题理解他想做什么;我只是不确定在这种情况下的最佳做法是什么。
-
当您加载像
www.blahblah.com/#!?page=index这样的URL 时,浏览器将向服务器发送www.blahblah.com/的请求。它不会在散列后发送任何内容,因此您无法使用 PHP 或 mod_rewrite 对其进行修改。您唯一真正的选择是使用 javascript 来处理哈希,并重定向到其他 URL。但是 javascript 不可靠且速度慢。基本上,你应该避免在 URL 中使用 #,除非它是为了一些琐碎的事情(比如滚动到页面上的特定点,或者激活页面上某处的特定“标签”)
标签: php javascript ajax mod-rewrite browser