Tôi đang viết lại một dự án cũ bằng Symfony2 để tôi có thể thử khung. Tôi có các url sẽ có dạng:Làm cách nào để định tuyến URL bằng chuỗi truy vấn trong Symfony2?
/profile/{id}
theo cách snazzy mà Symfony2 thực hiện. Tuy nhiên, cùng một trang ban đầu được tìm thấy bằng cách thực hiện:
/profile.php?id=12345
Vì vậy, trong trường hợp ai đó có URL cũ, tôi muốn chuyển hướng các liên kết này. Vấn đề là, tôi không biết cách bắt các tuyến đường này. Tôi đã thử
/profile.php?id={id}
nhưng điều đó dường như không hoạt động. Làm cách nào tôi có thể thiết lập tuyến đường này?
Theo dõi: Tôi không muốn làm "bắt tất cả" (vì nó không trực quan với tôi vì vậy tôi sợ các lỗi trong tương lai) và tôi không muốn làm điều đó thông qua htaccess cho cùng một lý do. Tôi nghĩ rằng tùy chọn tốt nhất là để phù hợp với "/profile.php" sau đó trong bộ điều khiển, kiểm tra xem "id" tồn tại trong chuỗi truy vấn và chuyển hướng cho phù hợp. Nếu không, tôi sẽ chuyển hướng đến 404.
Mod_rewrite đúng là: 'RewriteRule^profile.php? Id = (\ d +) $/profile/$ 1 [R = 301]'? –
Tôi chỉ muốn xác minh đây là chiến lược tốt nhất, vì tôi không phải là chuyên gia về Apache htaccess shenanigans –
Tôi cũng vậy. Bạn có thể kiểm tra viết lại ở đây: http://martinmelin.se/rewrite-rule-tester/. Mặc dù tôi muốn xử lý điều đó với SF. Bởi vì các tuyến đường ngày nay là một phần của mô hình/logic. – Raffael