2011-11-04 46 views
6

Tôi đang tìm cách tự động phân phát hình ảnh tới các trang web bằng htaccess dựa trên tên tệp trong url. Thông thường, tôi sử dụng cấu trúc thư mục lồng nhau trên trang web của mình để phân phối url động dựa trên tên thư mục giả. Trong trường hợp này, tôi chỉ muốn truy vấn tên tập tin (sans mở rộng) và phục vụ cho một kịch bản PHP để:url jpg động với .htaccess

 
/images/foo.jpg 

trở thành

 
/images/index.php?image=foo 

trong khi cũng cho phép hình ảnh jpg hiện có trong này thư mục được phục vụ. Tôi chắc chắn nó là dễ dàng, vì tôi đã có thể thực hiện một số điều khá thú vị với htaccess, nhưng không phải là một trong những điều này được nêu ra. Cảm ơn.

+0

Ý anh là gì bởi "trong khi cũng cho phép hình ảnh jpg hiện có trong thư mục này được phục vụ"? Điều đó có nghĩa rằng foo.jpg không tồn tại và nên được chuyển hướng đến index.php nhưng hình ảnh mà tồn tại trong/images/chỉ nên được phục vụ như bình thường? –

+0

chính xác. tôi cần tạo các jpg 'phantom' được nạp từ php và để bản gốc tồn tại như họ làm. – Lucas

Trả lời

10

như thế này:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^images/(.*)\.(jpg|png|jpeg|gif)$ /images/index.php?image=$1 [NC,L] 

lưu ý: nếu bạn cần phần mở rộng bạn sử dụng $2

+0

hoạt động khi tệp tồn tại, nhưng khi không, tôi nhận được 404 ... tôi muốn có thể tạo các jpgs "phantom" và cũng có thể phục vụ các tệp gốc mà không phải kéo chúng từ php. – Lucas

+0

tất cả các hình ảnh được lưu trong thư mục hình ảnh? nếu bạn muốn tạo hình ảnh 'phantom' thì nó khác nhau. Tôi đã cập nhật vé của mình. Bạn index.php có hiển thị tiêu đề chính xác cho hình ảnh không? –

+0

không, một số là và một số không ... tôi muốn cung cấp tên hình ảnh thân thiện với seo cho hệ thống tệp của tôi có chữ và số (ví dụ: DR382U1.jpg) và nằm ở nơi khác. – Lucas

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