Làm cách nào để truyền tham số GET cho URL viết lại?


13

Tôi có một .htaccessquy tắc viết lại như thế này:

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^search/(.*)$ search.php?q=$1

Điều này làm là gì, nếu ai đó truy cập http://example.com/search/testvào URI thực sự được xử lý http://www.example.com/search.php?q=test.

Bây giờ, nếu tôi cố gắng chuyển một tham số GET ngẫu nhiên bổ sung cho URL viết lại của mình, tham số đó sẽ bị bỏ qua. Vì vậy, nếu tôi cố gắng truy cập vào đây:

http://www.example.com/search/whatever?extra=true

Tham số extrabị bỏ qua. Nó dường như không được thông qua.

Vấn đề này có thể được sửa chữa? Nếu vậy thì thế nào?

Câu trả lời:


14

Bạn đang tìm kiếm cờ Qppend uery String A- vd

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^search/(.*)$ search.php?q=$1 [QSA]

Xem mod_rewritetài liệu để biết mô tả đầy đủ về các cờ RewriteRule.


À Tôi biết có một cái gì đó như thế. Tôi là một người mới .htaccess.
Jake Wilson

Có cách nào để thêm QSA vào tất cả các quy tắc không
hakkikonu

Xin chào @danlefree Biết đó là một câu hỏi cũ, nhưng sử dụng Wamp, khi tôi làm điều này, tất cả các bảng định kiểu, tập lệnh của tôi đều mất tham chiếu. Làm thế nào tôi có thể giải quyết điều đó?
DannyGM
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.