CodeIgniter: имя сервера без www не выбирает правильный конфиг БД - PullRequest
0 голосов
/ 17 декабря 2018

Если перейти к URL-адресу http://www.example.com, я получу хороший редирект на http://www.example.com/site/index.php/home/main точно так же, как я хочу использовать файл .htaccess.

Если я вырезал часть WWW,то есть http://example.com, тогда я получаю следующую ошибку:

An Error Was Encountered
No database connection settings were found in the database config file.

Мой файл htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /example/index.php?/$1 [L]  

RedirectMatch 301 ^/$ /home/main/

в то время как в database.php у меня есть

 if (
    ($_SERVER['SERVER_NAME'] == 'www.example.com') 
    or ($_SERVER['SERVER_NAME'] == 'example.com') 
    or ($_SERVER['SERVER_NAME'] == 'example.anothersite.com')
    or ($_SERVER['SERVER_NAME'] == "NN.NN.NN.NN")
)
{
    $db['default']['hostname'] = 'localhost';
    $db['default']['username'] = .....

Чего мне не хватает?Мне нужно, чтобы он работал с WWW или без него, и, похоже, это проблема моего CodeIgniter, поскольку ошибка - CodeIgniter.

Спасибо!

1 Ответ

0 голосов
/ 18 декабря 2018

Удивительно, как мозг работает после перерыва.Чтобы исправить это, мне нужен был перерыв, если честно.

Моя ссылка указывала на VirtualServer, проблема заключалась в том, что www.example.com указывал на правильный сервер, а у меня не было файла VirtualServer для "example.com."и он просто брал первый файл (очевидно, неправильный) и находился в неправильной папке CodeIgniter и в неверном файле базы данных.

Так что для исправления мне просто нужно отредактировать директиву apache и добавить после" ServerName "www.example.com "раздел другой раздел без www, который выглядит следующим образом:

ServerName example.com
ServerAlias example.com
DocumentRoot "/home/example/public_html"
<Directory "/home/example/public_html">
    AllowOverride All
    allow from all
    Options Indexes FollowSymLinks MultiViews Includes ExecCGI
    Require all granted
</Directory>

И это исправило мою проблему

...