0

我很好奇使用 mod_rewrite 和主题标签 (#) 时的浏览器行为。Firefox 和 Chrome 可以重写带有“www”的 URL 并删除“www”,同时保留带有主题标签和片段的原始 URL,没问题。棒极了!但是 Safari 和 IE7/8(不确定 9)在重写期间删除了“www”并丢失了主题标签和片段。我想知道是否有针对 Safari 和 IE 使用 mod_rewrite 的修复程序?虽然,我怀疑没有,因为我问的是片段。(我没有使用 mod_rewrite 的经验,我只是在阅读它并刚刚开始使用 HTML5 Boilerplate .htaccess 文件。我已经阅读了关于如何从未将哈希片段发送到服务器以及我是否想存储或使用那个片段我必须用 Javascript 在客户端做一些事情。

我可以使用 Twitter 来展示我正在谈论的内容的示例。如果你使用 Chrome 或 FF 并访问http://www.twitter.com/#!biz你会得到http://twitter.com/#!biz的重写没问题,完美。但是在 Safari 和 IE7/8 中使用相同的 URL(带有“www”)会将 URL 重写回主要的 Twitter URL,没有“www”,但没有哈希和片段,没有深度链接。对于具有 #!/biz (第二个 / )的 Twitter URL 的结果相同

如果 Twitter 没有(或不能)对这种 Safari/IE 和“www”行为做任何事情,那么也许我也不应该为此出汗?这是浏览器的问题,因为没有解决方案在 .htaccess 文件中使用 mod_rewrite 来存储主题标签片段,对吧?

特别是在我的工作中,我使用 SWFAddress,它使用主题标签来深度链接 Flash 内容,这几乎与 Twitter URL 完全一样,只是没有“!”。我认为 Twitter 正在使用 Make AJAX Crawlable 方法。就像 Twitter 一样,我的 URL 在 FF 和 Chrome 中可以很好地重写,但在 Safari 和 IE 7/8 中会很好。如果主题标签带有“!”,这似乎没有什么不同。与否,它仍然是片段的一部分,不是吗?

当我在寻找使 Flash 站点上的内容可抓取的解决方案时,我开始尝试使用 SWFAddress 版本的方法使 AJAX 可抓取,但浏览器以相同的方式处理 mod_rewrite。在 FF/Chrome 中删除“www”工作正常,在 Safari 和 IE 中删除片段。我的 SWFAddress Making AJAX Crawlable 方法版本有一个工作示例(必须删除链接。stackoverflow 的新用户每个帖子只能获得 2 个 URL)。最后,我没有使用这种方法使我的 Flash 内容可搜索,但它看起来很有希望。我认为制作 HTML 快照比使用 PHP 页面需要更多的工作,但这是一个完全不同的主题/问题。

如果(对于我的第一个 stackoverflow 问题)有一个非常简短的答案,例如,是的,不要出汗,那会很有趣!:)

谢谢!

4

1 回答 1

1

哈希之后的部分永远不会随请求一起发送到服务器,因此它会被浏览器而不是 Apache 丢失。对此您无能为力,除了可能向浏览器供应商打开错误报告。

于 2011-09-08T13:46:30.167 回答