Tôi đang gặp phải hành vi bất thường bằng cách sử dụng phương thức điều khiển Zend _redirect
.Lỗi Zend _redirect: prepends url cơ sở hai lần
Bản sao đơn đăng ký của tôi được cung cấp qua liên kết tượng trưng trong số DocumentRoot
của tôi. Ngoài ra bộ định tuyến mặc định của tôi được tùy chỉnh để đáp ứng với mô hình này:
http://localhost/<appSymLink>/<param_A>/<controller>/<action>/
Từ một bộ điều khiển, tôi xây dựng một URL như vậy:
$url = $this->_helper->url('action', 'controller', $param_A = 'valueA');
Nếu tôi truy cập vào url:
http://localhost/<appSymLink>/<param_A>/<controller>/<action>/
Biến này chứa các chuỗi sau:
/<appSymLink>/<param_A>/<controller>/<action>/
Và khi tôi gọi
$this->_redirect($url);
Người sử dụng được một cách rõ ràng chuyển hướng đến con đường này, với đường cơ sở thừa.
/<appSymLink>/<appSymLink>/<param_A>/<controller>/<action>/
Zend dường như được thêm vào trước các đường cơ sở hai lần.
Bản sao ứng dụng của đồng nghiệp của tôi nằm trong số DocumentRoot
và anh ấy không gặp sự cố này.
Xác định một đường cơ sở có sản phẩm nào bên trong hành động, chỉ cần trước khi phẫu thuật, hoạt động giống như vậy:
$this->getRequest()->setBaseUrl('');
Đây không phải là một giải pháp khả thi rõ ràng. Mặt khác, làm điều này trong một plugin điều khiển tại routeShutdown
loại bỏ cả hai lần xuất hiện của thư mục ứng dụng.
Có ai có lời khuyên giải pháp cho vấn đề này hay bất kỳ mẹo nào để tìm kiếm bốn sự cố khác?