2010-03-24 4 views
9

Je veux créer un site Web où les pages principales seront desservies à partir de CodeIgniter. J'utiliserai Wordpress dans le sous-répertoire/blog/pour héberger le blog. C'est tout! Je ne veux rien d'autre. Pour vous assurer que:Installation de CodeIgniter à la racine et WordPress dans le sous-répertoire

exemple.com/somepage/ appelle un contrôleur CI où example.com/blog/some-post/ est géré par Wordpress.

Je n'ai besoin d'aucune sorte d'intégration ou d'interaction entre CI et WP.

Est-il possible d'installer de cette façon? Si non, des solutions de contournement pour que je puisse atteindre les objectifs?

Merci et salutations, Masnun

Répondre

8

Je suppose que vous pourriez obtenir ce travail en utilisant un fichier .htaccess dans le répertoire racine de votre site. Si le blog est le nom du sous-répertoire où WordPress est installé, et que vous voulez example.com/blog être géré par WordPress, essayez ceci pour voir si elle aide:

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

Merci. Du coup d'oeil, ça devrait marcher. Je vais essayer ça. – masnun

+0

C'est ainsi que nous intégrons CI avec d'autres applications/sites. Cela pourrait être refusé de travailler dans les deux sens: application CI dans wordpress dir, et wordpress dans le répertoire de l'application CI. – Benoit

+0

@Rich Miller Ça ne marche pas pour moi. pouvez-vous vérifier la question http://stackoverflow.com/questions/32534801/installing-codeigniter-on-root-and-wordpress-in-sub-directory-not-working –

1

Il devrait fonctionner comme vous l'avez décrit sans aucune configuration compliquée. Il suffit d'installer codeigniter dans votre répertoire racine, puis créer un répertoire de blog et mettre wordpress là-dedans.

0

+1 avec la méthode de Rich

De plus, si vous utilisez un fichier .htaccess comme celui suggéré sur le document CI, il devrait fonctionner en déposant le répertoire WP directement dans le répertoire racine 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] 

En raison de la RewriteCond %{REQUEST_FILENAME} !-f et RewriteCond %{REQUEST_FILENAME} !-d tout appel effectué directement à un fichier réel sur serveur Web serait servi par Apache, d'autres uri seront traitées de façon par le mécanisme de routage de CI.

Notez que nous avons utilisé une dernière directive RewriteCond pour exclure les appels à certains fichiers, y compris notre répertoire dir (contenant les fichiers statiques images/css/js) et le répertoire 'corporate' qui contient dans ce cas un blog.

Bien que cet exemple n'utilise pas wordpress, il a son propre système de routage et de réécriture d'url. En guise de conclusion, vous aurez besoin d'une instruction spécifique RewriteCond si vous voulez utiliser WP url-rewriting, sinon cela pourrait fonctionner sans cela.

Questions connexes