Tôi muốn sử dụng tệp .htaccess
để kiểm tra xem đường dẫn được yêu cầu có phải là tệp trong thư mục public/
hay không. Nếu có, hãy phân phát, chuyển yêu cầu khác đến /index.php
. Tôi dường như không thể làm được điều này..htaccess: Cung cấp các tệp tĩnh, định tuyến mọi thứ khác tới index.php
Đây là những gì tôi đã có:
Options +FollowSymLinks
RewriteEngine on
Options -Indexes
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f
RewriteRule^%{DOCUMENT_ROOT}/public%{REQUEST_URI} [L]
RewriteRule^index.php [QSA,L]
ví dụ http://example.com/css/style.css
nên có apache phục vụ /public/css/style.css
vì đó là một tệp tồn tại, nhưng http://example.com/css/style.bad
phải được gửi đến /index.php
.
đó làm việc! Cảm ơn bạn. Tôi chỉ nhận thấy rằng mặc dù 'style.css' có sẵn tại * cả *'/css/style.css' * và * '/ public/css/style.css'. Về mặt kỹ thuật, sau này nên định tuyến đến 'index.php' vì'/public/public/css.style.css' không phải là một tệp. Điều này cũng có nghĩa là '/ public/xxx' sẽ ném một apache 404 thay vì tùy chỉnh mà tôi đã cấu hình trong tệp' index.php' của tôi. Không có cách nào để khắc phục điều đó, phải không? – mpen
Tôi đã chỉnh sửa câu trả lời của tôi để đưa ra nhận xét của bạn xem xét –
Bạn là ma thuật thân yêu của tôi. Bạn đã cứu tôi. Cảm ơn rất nhiều –