目前我有这个:
RewriteRule ^Skills$ http://mypage/resume.php#Skills [NE,NC,L]
当我有网址时,它正确地重定向到锚链接:http://mypage/Skills.
但是,浏览器中的URL显示实际的锚链接:http://mysite/resume.php#Skills
而不是向我展示http://mysite.com/Skills
如何重定向和重写网址?
答案 0 :(得分:0)
由于您的http://mypage
目标前面有RewriteRule
,因此会重定向浏览器。这会自动告诉重写引擎您想要302重定向,以便更改浏览器的地址栏。但是,这里的问题是如果你删除它只是/resume.php#Skills
,它将在内部重写请求(保留浏览器的地址栏中的内容),但片段(#Skills)将是无用的。
客户端使用片段告诉它以某种方式处理它所请求的内容,通常是指向有命名锚点的页面。如果浏览器没有看到#Skills
,则它不会转到“技能”命名锚点。如果您不重定向,浏览器将看不到该片段,因为它由服务器内部处理,服务器将忽略该片段。
可能有某种javascript解决方案告诉浏览器它刚加载的内容http://mypage/resume.php
需要被分页到某个命名锚点。它可以通过查看浏览器的地址栏,看到它正在请求/Skills
,然后onload()将页面发送到Skills
锚点来实现。