Могу ли я реструктурировать папку в приложении CodeIgniter? - PullRequest
0 голосов
/ 22 мая 2019

Я изменил структуру папок приложения CodeIgniter, как показано ниже:

MyCodeIgniterApp
- заявка
- система
- newsubfolder
- общедоступный
- index.php
- .htaccess
- composer.json

Как вы можете видеть выше структуру папок, я сохранил public, index.php и .htaccess файл внутри подпапки. И я изменил приложение и системный путь в файле index.php, чтобы использовать правильный. У меня вопрос, могу ли я получить доступ к своему приложению как http://localhost/MyCodeIgniterApp или что еще мне нужно сделать, чтобы получить доступ к этому?

1 Ответ

0 голосов
/ 22 мая 2019

Предполагая, что вы используете XAMPP в Windows

Я бы порекомендовал вам иметь структуру папок, как показано ниже

   MyCodeIgniterApp
    - application
    - system
    - composer.json
    - public
        - assets
        - index.php
        - .htaccess

Но если вы хотите сохранить структуру папок такой же, то просто изменитепути, так как они указывают на те же файлы, что и следующий код

  1. Сначала измените параметры пути системы и папки приложения index.php

с

    $system_path = 'system';
    $application_folder = 'application';

до

    $system_path = '../system';
    $application_folder = '../application';
Добавьте еще один .htaccess в ваше приложение в той же папке, что и система, и приложение, это сделано для того, чтобы заблокировать доступ apache к этой папке (поскольку нам нужен только php для связи с этой папкой)

.htaccess

    <IfModule authz_core_module>
        Require all denied
    </IfModule>
    <IfModule !authz_core_module>
        Deny from all
    </IfModule>

Измените .htaccess в общей папке на

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

Теперь вам нужно настроить сервер Apache для обслуживания общей папки, а не htdocs. Вы можете добиться этогоизменив настройки httpd.conf с

    DocumentRoot "C:/xampp/htdocs"
    <Directory "C:/xampp/htdocs">

на

    DocumentRoot "C:/xampp/htdocs/MyCodeIgniterApp/public"
    <Directory "C:/xampp/htdocs/MyCodeIgniterApp/public">

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

Перейдите в каталог установки XAMPP (обычно это C: \ xampp) и откройте файл httpd-vhosts.conf в подкаталоге apache \ conf \ extra \, используя ваш любимый текстовый редактор (как администратор), и добавьте новый виртуальный.Конфигурация хоста для httpd-vhosts.conf

httpd-vhosts.conf

<VirtualHost app.local:80>   
    DocumentRoot "C:/xampp/htdocs/MyCodeIgniterApp/public"
    ServerName app.local
    <Directory  "C:/xampp/htdocs/MyCodeIgniterApp/public">
        Options All
        AllowOverride All
        Require all granted 
    </Directory>
</VirtualHost>

здесь 'app.local' - это необходимый виртуальный домен

Теперь откройтефайл 'C: \ windows \ system32 \ drivers \ etc \ hosts' от имени администратора и добавьте

    127.0.0.1         app.local
Перезапустите XAMPP и попробуйте перейти на новый виртуальный домен, например http://app.local

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...