2010-03-24 6 views
9

Chcę utworzyć stronę internetową, na której będą wyświetlane strony główne z CodeIgniter. Użyję Wordpressa w/blogu/podkatalogu do hostowania bloga. To jest to! Nie chcę niczego innego. Aby upewnić się, że:Instalowanie CodeIgniter na root i WordPress w podkatalogu

przyklad.com/somepage/ wywołuje kontroler CI, gdzie jako example.com/blog/some-post/ jest obsługiwane przez Wordpress.

Nie potrzebuję żadnej integracji ani interakcji między CI i WP.

Czy można zainstalować w ten sposób? Jeśli nie, to czy można obejść, aby osiągnąć cele?

Dzięki i Pozdrawiam, Masnun

Odpowiedz

8

Podejrzewam, że można to uruchomić za pomocą pliku .htaccess w katalogu głównym witryny. Jeśli blog jest nazwą podkatalogu, gdzie jest zainstalowany WordPress, a chcesz example.com/blog być obsługiwane przez WordPress, spróbuj to, aby zobaczyć, czy to pomaga:

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

Dzięki. Na pierwszy rzut oka powinien działać. Spróbuję tego. – masnun

+0

W ten sposób integrujemy CI z innymi aplikacjami/witrynami. Może to zostać odrzucone do pracy w obie strony: aplikacja CI w wordpress dir i wordpress w aplikacji CI reż. – Benoit

+0

@Rich Miller To nie działa dla mnie. możesz sprawdzić pytanie http://stackoverflow.com/questions/32534801/installing-codeigniter-on-root-and-wordpress-in-sub-directory-not-working –

1

Powinno to działać tak, jak opisał to bez skomplikowanej konfiguracji. Wystarczy zainstalować codeigniter w katalogu głównym, a następnie utworzyć katalog blogów i umieścić tam wordpress.

0

+1 metodą Richa

Dodatkowo, jeśli używasz pliku .htaccess, takiego jak ten sugerowany w dokumencie CI, powinien działać, opuszczając katalog WP bezpośrednio do katalogu głównego serwera.

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] 

powodu RewriteCond %{REQUEST_FILENAME} !-f i RewriteCond %{REQUEST_FILENAME} !-d każdego wykonanego połączenia bezpośrednio do rzeczywistego pliku na serwerze internetowym byłby obsługiwany bezpośrednio przez Apache, inne uris wil być obsługiwane przez routingu mecanism CI.

Uwaga użyliśmy ostatniej dyrektywy RewriteCond, aby wykluczyć połączenia z plikami certyfikatów, w tym katalogiem zasobów (zawierającym statyczne pliki images/css/js) i katalogiem "firmowym", który zawiera w tym przypadku blog.

Mimo że w tym przykładzie nie używa się wordpress, ma on własny system przepisywania i trasowania.

Podsumowując, będziesz musiał użyć specyficznej instrukcji RewriteCond, jeśli chcesz użyć przepisywania stron WP, jeśli nie, to może działać bez niego.