Я хочу создать веб-сайт, где основные страницы будут подаваться от CodeIgniter. Я буду использовать Wordpress в/blog/подкаталоге для хостинга блога. Вот именно! Я не хочу ничто иное. Только удостовериться что:
example.com/somepage/ называет контроллер CI, где, поскольку example.com/blog/some-post/ обрабатывается Wordpress.
Мне не нужен никакой вид интеграции или взаимодействия между CI и WP.
Действительно ли возможно установить таким образом? В противном случае какие-либо обходные решения так, чтобы я мог достигнуть целей?
Спасибо и наилучшие пожелания, Masnun
Я подозреваю, что вы можете заставить это работать, используя файл .htaccess в корневом каталоге вашего сайта. Если блог - это имя подкаталога, в котором установлен WordPress, и вы хотите, чтобы WordPress обрабатывал example.com/blog, попробуйте это, чтобы узнать, помогает ли это:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|blog)
RewriteRule ^(.*)$ /index.php/$1 [L]
Он должен работать так, как вы его описали, без какой-либо сложной настройки. Просто установите codeigniter в свой корневой каталог, а затем создайте каталог блога и поместите туда wordpress.
+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, если нет, то это может работать и без него.