2015-04-08 13 views
5

Tôi đang gặp sự cố với htaccess, tôi muốn viết điều kiện sẽ ngăn chặn để phân phối tệp được chỉ định.Cách viết điều kiện ghi đè cho request_filename khác nhau sau đó được chỉ định

Nếu tên tập tin yêu cầu tồn tại, chỉ cần phục vụ nó vì vậy tôi có điều này:

RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule .? - [L] 

nhưng làm thế nào tôi có thể đạt được điều đó một tập tin chỉ định sẽ không được phục vụ? tôi có đường dẫn này được sử dụng cho hành động điều khiển của tôi. do đó, ví dụ example/do_something.php là đường dẫn đến tệp do_something.php nhưng cũng là đường dẫn đến hành động điều khiển của tôi và tôi muốn tệp htaccess của mình để phục vụ tác vụ này thay vì tệp này nhưng chỉ này.

Trả lời

0

tôi đã cố gắng như anubhava nói trong mình answer

RewriteRule ^do_something\.php$ - [L,NC] 

và nó didnt làm việc cho tôi, nhưng tôi cố gắng giải quyết nó bằng cách chuyển hướng này tập tin để điều khiển phía trước của tôi:

RewriteRule ^example/(.+)\.php$ %{ENV:BASE}/app.php [L] 

Vì vậy, trong này trường hợp nếu ai đó nhập đường dẫn example/do_something.php thì tệp sẽ không được phân phát và yêu cầu đi trước bộ điều khiển trước

Ví dụ đầy đủ:

# If the requested filename exists 
# And my route path for controller action is the same 
# Don't serve file serve action 
RewriteRule ^example/(.+)\.php$ %{ENV:BASE}/app.php [L] 

# If the requested filename exists, simply serve it. 
# We only want to let Apache serve files and not directories. 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule .? - [L] 

# Rewrite all other queries to the front controller. 
RewriteRule .? %{ENV:BASE}/app.php [L] 
0

Bạn chỉ có thể sử dụng quy tắc này:

RewriteRule ^example/do_something\.php$ - [L,NC] 

này sẽ bỏ do_something.php từ tất cả các quy định dưới đây quy tắc này.

+0

vì vậy tôi chỉ thêm điều này sau điều kiện ghi lại cho tất cả các quy tắc bên dưới điều kiện đó có? – Vardius

+0

Xin lỗi tôi đã không hiểu. Bạn đang cố gắng làm gì với quy tắc này? Bạn có thể làm rõ với một số ví dụ. Ngoài ra tốt hơn bạn đặt đầy đủ .htaccess trong câu hỏi – anubhava

+0

thx để được giúp đỡ, nhưng nó đã không làm việc nếu bạn muốn biết làm thế nào tôi quản lý để giải quyết nó kiểm tra câu trả lời của tôi – Vardius

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