2013-01-16 22 views
5

Dưới đây là điều:Có hai? trong URL - Có hợp lệ không?

Hãy nói rằng tôi có một URL cơ sở như thế này:

www.mysite.com?my_first_param=1&my_second_param=2 

Nhưng bây giờ tôi muốn thêm một tham số mới cho URL của tôi:

www.mysite.com?my_first_param=1&my_second_param=2&my_redirect_site=www.myothersite.com 

Hãy tưởng tượng rằng Tôi đang sử dụng dịch vụ nơi họ thêm thông số theo dõi mới vào URL của tôi. Ví dụ:

first_tracking=value1&second_value=value2 

Vì url BASE của tôi đã có dấu "?" các thông số được thêm vào với một "&", do đó URL cuối cùng của tôi sẽ trông như thế này:

www.mysite.com?my_first_param=1&my_second_param=2&my_redirect_site=www.myothersite.com&first_tracking=value1&second_value=value2 

Đây là một URL đúng với một số thông số, nhưng khi tôi làm chuyển hướng để www.myothersite.com, vì các thông số bắt đầu với một "&", họ bị lạc. Có phải là chính xác để thêm thông số theo dõi có bắt đầu "?" ? Như thế này:

www.mysite.com?my_first_param=1&my_second_param=2&my_redirect_site=www.myothersite.com?first_tracking=value1&second_value=value2 

Nếu không, cách tiếp cận tốt để giải quyết vấn đề này là gì? Tôi tin là trách nhiệm của chuyển hướng để chuyển qua các thông số theo dõi đến URL chuyển hướng.

+0

Tôi không nghĩ rằng nó sẽ vượt qua QueryParams. – Srinivas

+0

Tôi đồng ý, chuyển hướng phải đi qua các thông số theo dõi. –

Trả lời

1

Bạn nên URLEncode mỗi tên param và giá trị đúng cách, vì vậy nếu bản đồ của params bạn muốn là thế này:

my_first_param => 1 
my_second_param => 2 
my_redirect_site => www.myothersite.com?first_tracking=value1&second_value=value2 

thì bạn nên chuyển thông tin này như các chuỗi truy vấn:

?my_first_param=1&my_second_param=2&my_redirect_site=www.myothersite.com%3Ffirst_tracking%3Dvalue1%26second_value%3Dvalue2 

Bạn nên sử dụng thư viện thực hiện điều này để xây dựng URI để xử lý mã hóa này cho bạn.

0

Không, bạn không thể có dấu hỏi thứ hai trong URL.

Ngoài ra, nếu bạn có ký hiệu và trong URL chuyển hướng, chúng sẽ được xem dưới dạng tham số riêng biệt cho URL chính và không được xem là đã kết nối với URL chuyển hướng.

Nếu bạn muốn thực hiện chuyển hướng như thế này, bạn cần phải URLSncode toàn bộ URL được chuyển hướng. Có các chức năng tiêu chuẩn trong hầu hết các ngôn ngữ phải đối mặt với web để thực hiện việc này.

0

Mã hóa tham số "?" sẽ được thay thế bằng% 3F

0

Tùy thuộc vào số lượng kiểm soát bạn có trên dịch vụ thêm thông số theo dõi. Bạn có thể thay đổi url sau khi các thông số đã được thêm vào không?

Nếu có thể, bạn nên sử dụng trình tạo url để thêm thông số theo dõi vào url chuyển hướng của mình, sau đó url mã hóa url đó một cách phù hợp, bao gồm các thông số theo dõi.

Nếu bạn không kiểm soát được và bên thứ ba sửa đổi url của bạn, bạn sẽ phải thực hiện điều này khi bạn chuyển hướng, đọc thông số trong url, chuyển url chuyển hướng và thông số theo dõi, thêm thông số theo dõi vào url chuyển hướng trước khi chuyển hướng.

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