2012-04-03 12 views
15

宛先にフラグメント識別子部分が含まれている場合は、リダイレクトを発行しようとしています。 私は、このルールで試してみました:ハッシュマークを含む宛先のApacheリライト規則

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

#%23に変換され、Webアプリケーションが正しく、このURLを解析することはできませんが。どうすればApacheを強制的に#の文字にすることができますか?見出さ

答えて

28

解決策:のmod_rewriteでURLをエスケープしないためのオプションがある:

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

[NE]フラグを追加するには、問題を解決しました。

+0

クエリーストリングを追加しない*方法がありますか?このメソッドを使って '/ myUrl?123'を'/newUrl#hash?123'にリダイレクトします。私は 'QSA'フラグがあることを知っていますが、私はその反対を見つける必要があります。 –

+1

@ SimonEast Apache 2.4には 'QSD'フラグがあります。あるいは単に 'RewriteRule'置換の最後に'? 'を追加してください。 – MrWhite

+0

恐ろしく、ありがとう@ w3dk –

関連する問題