Интеграция Wordpress, Codeigniter и .htaccess - PullRequest
1 голос
/ 05 января 2012

У меня есть сайт, который использует WordPress для внешнего интерфейса и приложение Codeigniter для бэкэнда «интернет-магазина». Структура Wordpress находится не в корне, а в каталоге /wp.

Мне требуются некоторые правила .htaccess, которые переписываются следующим образом: Я пытаюсь сделать следующее -

  1. если пользователь заходит на www.company.com, он выполняет правило перезаписи для папки wp (wordpress)
  2. если пользователь заходит на admin.company.com, он выполняет правило перезаписи на index.php (для приложения Codeigniter)
  3. Последний бит требуется для mod_rewrite для URL WordPress.

Проблема, с которой я столкнулся, заключается в том, что я не могу заставить работать и правило 1, и правило 2 из-за используемого правила RewriteBase. Может ли кто-нибудь подсказать, как использовать RewriteBase для правила (например, более одного раза) или подобную команду для этого?

RewriteCond %{HTTP_HOST} ^(www.)?company.com$
RewriteRule ^(/)?$ wp [L]

RewriteCond %{HTTP_HOST} ^admin.company.com$
RewriteRule index.php [L]

RewriteBase /wp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]

RewriteRule ^(.*)$ /index.php?$1 [L]

1 Ответ

1 голос
/ 05 января 2012

Если у вас есть файл индекса codeigniter в корневом каталоге, вы, вероятно, можете оставить файл .htaccess в покое и просто использовать файл маршрутов в своем приложении codeigniter.

$subdomain_arr = explode('.', $_SERVER['HTTP_HOST'], 2); //creates the various parts  
$subdomain_name = $subdomain_arr[0]; //assigns the first par

if ($subdomain_name == 'admin')) {
    $route['uristring'] = "controller/method";
} elseif($subdomain_name == 'www')) {
    $route['uristring'] = "controller/method"; // in this method, just do a redirect to your /wp folder.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...