我可以在CodeIgniter应用中重组文件夹吗?



我已经更改了我的codeigniter应用程序文件夹结构如下:

mycodeigniterApp
- 应用程序
- 系统
- 新闻求婚者
    - 公共
    - index.php
    - .htaccess
     - composer.json

您可以看到上面的文件夹结构,我将公开,index.php和.htaccess文件保留在子文件夹中。我已经更改了index.php文件中的应用程序和系统路径以使用正确的一个。我的问题是,我可以像http://localhost/mycodeigniterapp一样访问我的应用程序,或者我应该做些什么才能访问?

假设您在Windows上使用XAMPP

我建议您将文件夹结构如下

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

但是,如果要保持文件夹结构相同,则只需更改路径,以便它们指向以下代码相同的文件

  1. 首先更改index.php的系统和应用程序文件夹的路径设置

来自

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

to

    $system_path = '../system';
    $application_folder = '../application';
  1. 在您的应用程序中,在与系统和应用程序同一文件夹中添加另一个.htaccess这样做是为了阻止Apache对此文件夹的访问(因为我们只需要PHP即可与此文件夹进行通信(

.htaccess

    <IfModule authz_core_module>
        Require all denied
    </IfModule>
    <IfModule !authz_core_module>
        Deny from all
    </IfModule>
  1. 将.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">

to

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

但是,这样做会失去对HTDOCS文件夹中其他应用程序的访问为了避免此尝试将虚拟域设置为新应用程序

  1. 更改您的XAMPP安装目录(通常为C: XAMPP(,然后使用您喜欢的文本编辑器(AS Admin(在Apache conf conf conf conf extra subdirectory中打开httpd-vhosts.conf文件。并将新的虚拟主机配置添加到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'作为admin并添加

    127.0.0.1         app.local
  1. 重新启动XAMPP并尝试转到您的新虚拟域例如http://app.local

希望这有帮助

最新更新