【发布时间】:2013-02-14 11:53:45
【问题描述】:
我想用http://example.com/articles/first-article重写http://example.com/articles.html#first-article
可以重写吗?
我尝试使用以下方法,但对我不起作用:
RewriteRule ^articles/(.+)$ /articles\.html\#$1
【问题讨论】:
-
正如@fab 回答的那样,片段没有发送到服务器。您可以设置一个包罗万象的页面并使用 JavaScript 进行重定向。
-
@Bouke:错误/请阅读Apache documentation。
-
@BoReth 实际上与 Apache 没有任何关系。另见stackoverflow.com/questions/3067491/…。重申;服务器无权访问锚点,因此无法在重写规则中使用锚点。
-
@Bouke:嗯,它与 Apache 有很大关系,因为它是关于 REDIRECTING。例如,如果 "httpd.conf" 或 ".htacces" 中存在带有
RewriteRule . /Dir1/Dir2/#ApacheAnchor [NE,R=301,L]的重写规则,则 SERVER 确实会重定向到该 URL,并且 RESPONSE HEADER 将包含以下内容: “位置:mydomain/Dir1/Dir2/#ApacheAnchor”。因此,在我看来,声称永远不会将 ANCHOR 或片段发送到服务器是不准确的。 -
@BoReth 您将发送数据到服务器与接收数据从服务器混淆了。问题是关于基于从客户端收到的标头的服务器端重定向。
标签: .htaccess mod-rewrite