2012-04-03 54 views
15

我試圖在目標包含片段標識符部分的情況下發出重定向。 我試圖與這條規則:對包含散列標記的目標的Apache重寫規則

RewriteRule ^/foo/bar/([^/]+)/(.*)$ /cgi/script#foobar::$1.$2 [R,L] 

然而#轉化爲%23和Web應用程序不能正確地分析這個網址。我如何強制apache保持#角色?發現

回答

28

解決方法:有不與mod_rewrite的逸出網址選項:

https://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_ne

添加[NE]標誌解決了這個問題。

+0

有沒有辦法*不追加查詢字符串?使用這種方法,我得到'/ myUrl?123'重定向到'/ newUrl#hash?123'。我知道有'QSA'的標誌,但我需要找到相反的。 – 2016-02-03 00:06:09

+1

@SimonEast你在Apache 2.4上有'QSD'標誌。或者在'RewriteRule'替換的末尾添加一個'?'。 – MrWhite 2016-09-19 08:56:31

+0

太棒了,謝謝@ w3dk – 2016-09-20 01:47:33