5

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:

+0

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' –

Trả lời

3

AllowEncodedSlashes On cố định này đối với tôi, sử dụng URL kiểm tra chính xác của bạn. Tuy nhiên, theo http://httpd.apache.org/docs/2.0/mod/core.html#allowencodedslashes, chỉ thị này cần phải có cấu hình máy chủ hoặc vhost. nó không hoạt động trong tệp .htaccess.

Cá nhân tôi sẽ đi với giải pháp chuỗi truy vấn. Bạn có thể mở rộng ý nghĩa của mình bằng cách tạo quy trình tạo URL gồm hai bước không? Tôi đã nghĩ rằng cú pháp sẽ khá giống với việc sử dụng trình trợ giúp URL thông thường.

+0

Chắc chắn rồi. Đặt chỉ thị này trong '/ etc/apache2/apache2.conf' - nỗ lực ban đầu của tôi - không có hiệu lực. Tôi chỉ cố gắng thiết lập nó trong máy chủ ảo ('/ etc/apache2/sites-available/default') và nó đã thành công. Cảm ơn! –

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