1

目前我有这个:

RewriteRule ^Skills$ http://mypage/resume.php#Skills [NE,NC,L]

当我有 url 时,哪个正确重定向到锚链接:http://mypage/Skills. 但是浏览器中的 URL 显示实际的锚链接:http://mysite/resume.php#Skills 而不是显示我http://mysite.com/Skills

如何重定向和重写 url?

4

1 回答 1

0

它正在重定向浏览器,因为您的目标http://mypage前面有一个。RewriteRule这会自动告诉重写引擎您想要一个 302 重定向,因此您的浏览器的地址栏将被更改。但是,这里的问题是,如果您将其删除以便它只是/resume.php#Skills,它将在内部重写请求(保留浏览器地址栏中的内容)但片段(#Skills)将无用。

客户端使用片段来告诉它以某种方式处理它请求的内容,通常是分页到有命名锚点的位置。如果浏览器没有看到#Skills,它不会跳转到名为“技能”的锚点。如果您不重定向,浏览器将看不到该片段,因为它正在由服务器内部处理并且服务器将忽略该片段。

可能有某种 javascript 解决方案告诉浏览器它刚刚加载的内容http://mypage/resume.php需要分页到某个命名的锚点。它可以通过查看浏览器的地址栏来做到这一点,看到它正在请求/Skills,然后 onload() 将它分页到Skills锚点。

于 2012-07-12T17:01:05.567 回答