mod_rewrite保持锚链接

时间:2013-02-22 21:47:50

标签: apache mod-rewrite anchor

我希望example.com/site/about#whoami使用mod_rewrite指令重定向到example.com/site/?page=about#whoami,但我不知道如何做到这一点

1 个答案:

答案 0 :(得分:3)

注意:可以传递锚点字符#,但它对替换URL没有影响,除非重定向到存在锚点的页面。虽然Apache无法将窗口滚动到锚点,但浏览器会在这种情况下执行此操作。这是一些Apache information about redirecting anchors

您可以尝试这样的事情:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^site/(.*)/?   site?page=$1  [NC,NE,L]

地图

http://example.com/site/anything

http://example.com/site/?page=anything

假设字符串site已修复。

字符串anything可能包含一个锚#,它将在替换网址中传递。