2012-04-03 25 views
15

Tôi đang cố phát hành chuyển hướng nơi đích có chứa phần định danh phân đoạn. Tôi đã thử với quy tắc này:Quy tắc ghi đè Apache cho một đích có chứa dấu băm

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

Tuy nhiên # được chuyển thành %23 và ứng dụng web không thể phân tích một cách chính xác url này. Làm thế nào tôi có thể buộc apache giữ ký tự #?

Trả lời

28

Giải pháp phát hiện: có một lựa chọn cho không thoát url với mod_rewrite:

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

Thêm [NE] cờ giải quyết vấn đề.

+0

Có cách nào để * KHÔNG * nối thêm chuỗi truy vấn không? Sử dụng phương pháp này tôi nhận được '/ myUrl? 123' chuyển hướng đến'/newUrl # hash? 123'. Tôi biết có lá cờ 'QSA', nhưng tôi cần tìm ngược lại. –

+1

@SimonEast Bạn có cờ 'QSD' trên Apache 2.4. Hoặc chỉ cần thêm một '?' Vào cuối thay thế 'RewriteRule'. – MrWhite

+0

Tuyệt vời, cảm ơn @ w3dk –

Các vấn đề liên quan