2010-03-24 25 views
9

Tôi muốn tạo trang web nơi các trang chính sẽ được phân phát từ CodeIgniter. Tôi sẽ sử dụng Wordpress trong thư mục/blog/sub để lưu trữ blog. Đó là nó! Tôi không muốn gì khác. Chỉ cần đảm bảo rằng:Cài đặt CodeIgniter trên root và WordPress trong thư mục con

example.com/somepage/ gọi bộ điều khiển CI ở vị trí example.com/blog/some-post/ được Wordpress xử lý.

Tôi không cần bất kỳ loại tích hợp hoặc tương tác nào giữa CI và WP.

Có thể cài đặt theo cách đó không? Nếu không, bất kỳ giải pháp nào để tôi có thể đạt được các mục tiêu?

Cảm ơn và Kính trọng, Masnun

Trả lời

8

Tôi nghi ngờ bạn có thể làm việc này bằng cách sử dụng tệp .htaccess trong thư mục gốc của trang web của bạn. Nếu blog là tên của thư mục con trong đó WordPress được cài đặt, và bạn muốn example.com/blog để được xử lý bởi WordPress, hãy thử này để xem nếu nó giúp:

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt|blog) 
RewriteRule ^(.*)$ /index.php/$1 [L] 
+0

Cảm ơn. Từ giao diện của nó, nó sẽ hoạt động. Tôi sẽ thử cái này – masnun

+0

Đó là cách chúng tôi tích hợp CI với các ứng dụng/trang web khác. Điều này có thể bị từ chối hoạt động theo cả hai cách: ứng dụng CI vào thư mục wordpress và wordpress bên trong thư mục ứng dụng CI. – Benoit

+0

@Rich Miller Nó không làm việc cho tôi. bạn có thể kiểm tra câu hỏi http://stackoverflow.com/questions/32534801/installing-codeigniter-on-root-and-wordpress-in-sub-directory-not-working –

1

Nó sẽ làm việc cũng giống như bạn mô tả nó mà không cần bất kỳ cấu hình phức tạp. Chỉ cần cài đặt codeigniter trong thư mục gốc của bạn và sau đó tạo một thư mục blog và đặt wordpress vào đó.

0

+1 với phương pháp Rich

Ngoài ra, nếu bạn đang sử dụng tệp .htaccess như tệp được đề xuất trên CI doc, nó sẽ hoạt động bằng cách thả thư mục WP trực tiếp vào thư mục gốc của web.

RewriteEngine On 
RewriteBase/

#Removes access to the system folder by users. 
#Additionally this will allow you to create a System.php controller, 
#previously this would not have been possible. 
#'system' can be replaced if you have renamed your system folder. 
RewriteCond %{REQUEST_URI} ^system.* 
RewriteRule ^(.*)$ /index.php/$1 [L] 

#Checks to see if the user is attempting to access a valid file, 
#such as an image or css document, if this isn't true it sends the 
#request to index.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
#This last condition enables access to the images and css folders, and the robots.txt file 
#Submitted by Michael Radlmaier (mradlmaier) 


RewriteCond $1 !^(index\.php|robots\.txt|corporate|assets) 
RewriteRule ^(.*)$ index.php/$1 [L] 

Do RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d bất kỳ cuộc gọi thực hiện trực tiếp vào một tập tin thực trên máy chủ web sẽ được phục vụ trực tiếp bởi Apache, URI khác wil được xử lý bởi mecanism định tuyến CI của.

Lưu ý rằng chúng tôi đã sử dụng chỉ thị RewriteCond cuối cùng để loại trừ cuộc gọi để xác nhận tệp, bao gồm dir tài sản của chúng tôi (chứa tệp hình ảnh/css/js tĩnh) và thư mục 'doanh nghiệp' trong blog này.

Mặc dù ví dụ này không sử dụng wordpress, nó có hệ thống định tuyến và định tuyến url riêng.

Trong một vấn đề kết luận, bạn sẽ sử dụng câu lệnh RewriteCond cụ thể nếu bạn muốn sử dụng viết lại url của WP, nếu không nó có thể hoạt động mà không có nó.

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