Установка CodeIgniter на корне и WordPress в подкаталоге

Я хочу создать веб-сайт, где основные страницы будут подаваться от CodeIgniter. Я буду использовать Wordpress в/blog/подкаталоге для хостинга блога. Вот именно! Я не хочу ничто иное. Только удостовериться что:

example.com/somepage/ называет контроллер CI, где, поскольку example.com/blog/some-post/ обрабатывается Wordpress.

Мне не нужен никакой вид интеграции или взаимодействия между CI и WP.

Действительно ли возможно установить таким образом? В противном случае какие-либо обходные решения так, чтобы я мог достигнуть целей?

Спасибо и наилучшие пожелания, Masnun

9
задан tereško 16 August 2013 в 11:20
поделиться

3 ответа

Я подозреваю, что вы можете заставить это работать, используя файл .htaccess в корневом каталоге вашего сайта. Если блог - это имя подкаталога, в котором установлен WordPress, и вы хотите, чтобы WordPress обрабатывал example.com/blog, попробуйте это, чтобы узнать, помогает ли это:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|blog)
RewriteRule ^(.*)$ /index.php/$1 [L]
8
ответ дан 4 December 2019 в 21:09
поделиться

Он должен работать так, как вы его описали, без какой-либо сложной настройки. Просто установите codeigniter в свой корневой каталог, а затем создайте каталог блога и поместите туда wordpress.

1
ответ дан 4 December 2019 в 21:09
поделиться

+1 с методом Рича

Кроме того, если вы используете файл .htaccess, подобный тому, что предложен на CI doc, это должно сработать, если бросить директорию WP прямо в корневой каталог сайта.

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]

Из-за RewriteCond %{REQUEST_FILENAME} !-f и RewriteCond %{REQUEST_FILENAME} !-d любой вызов, сделанный непосредственно к реальному файлу на веб-сервере, будет обслуживаться непосредственно Apache, другие uris будут обрабатываться механизмом маршрутизации CI.

Обратите внимание, что мы использовали последнюю директиву RewriteCond для исключения обращений к определенным файлам, включая наш каталог assets (содержащий статические файлы images/css/js) и каталог 'corporate', который в данном случае содержит блог.

Хотя в данном примере не используется wordpress, он имеет свою собственную систему url-rewriting и маршрутизации.

В качестве вывода, вам придется использовать специальный RewriteCond оператор, если вы хотите использовать WP url-rewriting, если нет, то это может работать и без него.

1
ответ дан 4 December 2019 в 21:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: