Tôi đang sử dụng tệp Zend /public/.htaccess
tiêu chuẩn (được hiển thị bên dưới).Phá vỡ tham số được mã hóa URL Các quy tắc ghi đè Zend mặc định
Hiện tại, tôi đang cố gắng chuyển tiếp người dùng đến một bộ điều khiển/hành động cụ thể và cung cấp URL chuyển hướng thành công làm thông số URL.
dẫn URL (lắp ráp & mã hóa qua xem URL helper của Zend) trông như thế này:
localhost/crop/index/successRedirect/localhost%2Fprofile%2Fbasic
Tuy nhiên mô hình này rõ ràng là vi phạm mặc định, Zend quy tắc gói mod_rewrite: truy cập vào URL mang lại một tiêu chuẩn Apache 404 lỗi; Zend không nhận được yêu cầu.
Khi tham số cuối cùng được tái thành lập bằng tay như sau, yêu cầu hoạt động như mong muốn:
localhost/crop/index/?successRedirect=localhost%2Fprofile%2Fbasic
Tuy nhiên điều này đòi hỏi một, hai bước quá trình tạo URL hackish. Nó sẽ là lý tưởng nếu URL được sản xuất bởi trình trợ giúp xem hoạt động độc lập.
Điều gì có thể được thực hiện để cho phép mã hóa url đi qua? Bất kỳ thông tin chi tiết nào sẽ được đánh giá cao!
Đây là những nội dung của .htaccess tôi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Kích hoạt RewriteLog như vậy không tạo đầu ra cho các mô hình thất bại:
RewriteLogLevel 9
RewriteLog "<path>/rewrite.log"
Tôi đã cố gắng giải bởi sau hai Q đề xuất & A, không có thay đổi:
- Adding encoded chars to the url breaks htaccess (
AllowEncodedSlashes On
) - Mod Rewrite and Using PHP's GET for URL's When not Following the Rules (sử dụng
QSA
chỉ thị cho quy tắc viết lại)
Giải pháp được đề xuất này cũng không có hiệu lực: http://stackoverflow.com/questions/6520484/mod-rewrite-urlencoding-an-already-urlencoded-querystring-parameter-any-way-to - thêm chỉ thị 'NE' để 'RewriteRule' –