Веб-сайт Codeigniter (Позволяет называть его WebA ) устанавливается в корень sebserver «/», доступ к которому осуществляется из домена: www.example.com.
Другой веб-сайт Codeigniter (Позволяет называть его WebB ) устанавливается на том же веб-сервере в подпапке «/ subfolder», доступ к которой осуществляется из домена: www.example2.com.
У меня есть 2 файла .htacces, которые удаляют index.php, установленные на WebA и в WebB:
<IfModule mod_rewrite.c> 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] #When your application folder isn't in the system folder #This snippet prevents user access to the application folder #Submitted by: Fabdrol #Rename 'application' to your applications folder name. RewriteCond %{REQUEST_URI} ^application.* 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 RewriteRule ^(.*)$ index.php?/$1 [L] RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} (auth|register|secure) RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301] RewriteCond %{HTTPS} on RewriteCond %{REQUEST_URI} !(static|auth|register|secure) RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301] </IfModule> <IfModule !mod_rewrite.c> # If we don't have mod_rewrite installed, all 404's # can be sent to index.php, and everything works as normal. # Submitted by: ElliotHaughin ErrorDocument 404 /index.php </IfModule> AddType application/vnd.ms-fontobject .eot AddType application/octet-stream .otf .ttf
Я настроил на WebA в /application/config/config.php:
$config['base_url'] = 'http://example.com/';
И в WebB в /subfolder/application/config/config.php:
$config['base_url'] = 'http://example2.com/';
С помощью этой конфигурации, когда я обращаюсь к www.example2.com, я получаю:
404 Страница не найдена
Если я изменил строку .htaccess RewriteBase WebB, чтобы:
RewriteBase /subfolder/
Я получаю вывод html в индексе «http://example2.com/», но он не загрузит ни один из моих JS или CSS, потому что вместо загрузки сценария он загружает это:
<h4>A PHP Error was encountered</h4> <p>Severity: Notice</p> <p>Message: Trying to get property of non-object</p> <p>Filename: controllers/html.php</p> <p>Line Number: 60</p> </div><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;"> <h4>A PHP Error was encountered</h4> <p>Severity: Warning</p> <p>Message: Cannot modify header information - headers already sent by (output started at /var/www/subfolder/system/core/Exceptions.php:185)</p> <p>Filename: helpers/url_helper.php</p> <p>Line Number: 546</p> </div>
Он также выводит эту ошибку при попытке навигации по страницам, но я не получаю Html.
Первая ошибка, по-видимому, из-за несогласованности моих моделей баз данных не работает.
Если я изменю config.php WebB, выполните следующие действия:
$config['base_url'] = 'http://example.com/subfolder/';
И строка RewriteBase WebB в .htaccess для:
RewriteBase /subfolder/
Его работоспособность при доступе на www.example.com/subfolder/ и www.example2.com, но проблема связана с ссылками WebB, которые мне нужны, чтобы быть такими, как www.example2.com, а не www.example.com/ подпапка /
WebA всегда работает.
У меня такой же код работает на нескольких сайтах без каких-либо проблем, но я никогда раньше не сталкивался с этим сценарием. Есть идеи?