2013-08-06 28 views
14

Tôi đang tự hỏi làm thế nào để vô hiệu hóa các định tuyến trên laravel cho một thư mục cụ thể?Disable Laravel Routing cho một thư mục cụ thể/đường

tôi hy vọng để chạy trang web chính của tôi tắt của laravel (tôi viết lại nó vào khuôn khổ), nhưng tôi muốn giữ lại phần mềm diễn đàn hiện tại của tôi! Vấn đề là, khi laravel thể xem phần "localhost/diễn đàn" nó sẽ tìm kiếm một bộ điều khiển diễn đàn hoặc tuyến đường. Tôi muốn nó chỉ đơn giản là đi đến thư mục chữ/diễn đàn ..?

+2

bài viết của bạn 'routes.php' tập tin – Andreyco

+0

@Andreyco Ông có thể giúp đỡ? –

Trả lời

2

Bạn cần phải thực hiện một loại trừ trong tập tin .htaccess của bạn. Ngay trên quy tắc đó sẽ gửi tất cả mọi thứ để index.php, thêm này:

RewriteCond %{REQUEST_URI} !^/forums 

Bất cứ điều gì mà bắt đầu với /forums sẽ không được gửi đến Laravel.

(Tất nhiên, điều này là giả sử bạn đang sử dụng Apache.)

+0

Đối với tôi tất cả các file trong tải/công bình thường mà không bất kỳ thay đổi .htaccess. Vấn đề là một cái gì đó như/public/forum không tự động tải chỉ mục trong đường dẫn đó nữa, nó phải được truy cập bởi /public/forum/index.php và các quy tắc trên cũng không giúp được gì. Bất kỳ ý tưởng làm thế nào để sửa lỗi này? – cen

1

Theo routes.php tập tin của bạn nó là vụ phải làm việc.

  1. You are not bắt forum URL nào cả
  2. Nếu 'diễn đàn' thư mục/tập tin tồn tại, URL không được viết lại để index.php

routes.php (tôi đã sử dụng một này Laravel của trong các thử nghiệm trường hợp)

Route::get('{slug}', function($slug){ 
    return $slug; 
}); 

Cấu trúc tệp

|- app 
|- public 
|--- index.php // Laravel's one 
|--- forum // directory for forum files 
|------ index.php // Forum's one 
.... 

Sử dụng cấu trúc này, URL không được viết lại vào tệp index.php định tuyến của Laravel. Nếu tôi đổi tên/xóa forum URL thư mục được viết lại sau đó.

Tính năng này có phù hợp với bạn không?

12

tôi phải thêm dòng này ở nơi công cộng/.htaccess

RewriteCond %{REQUEST_URI} !^/foldername 

trước dòng này (mà chuyển hướng slashes trailing)

RewriteRule ^(.*)/$ /$1 [L,R=301] 
+0

Hoạt động như sự quyến rũ !! Cảm ơn bạn –

+0

Cái này hoạt động. Đảm bảo bạn đang cập nhật.htaccess của đúng thư mục – Guy

5

Với Laravel 4 không ai trong số các giải pháp này đang làm việc cho tôi. Tôi cuối cùng đã giải quyết nó bằng cách đặt

RewriteRule ^(directory-name) - [L] 

trước

RewriteRule ^(.*)/$ /$1 [L,R=301] 

ở nơi công cộng/.htaccess

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