Codeigniter 2.1.4安装在子目录中

时间:2014-01-30 23:08:01

标签: .htaccess codeigniter routing subdirectory

我已多次在根目录中成功安装CI,但现在我被迫在https://mydomain.com/mvc中安装CI

存在一个控制器“Login”,其中一个动作“index”

.htaccess文件如下所示:

Options +FollowSymLinks  
RewriteEngine on  
RewriteBase /mvc  
RewriteRule ^(.*)$ index.php?/$1 [L]  

在config / config.php

$config['base_url'] = 'https://mydomain.com/mvc/';  
$config['index_page'] = '';  

我的路线如下:

$route['default_controller'] = "login";  
$route['login'] = "login/index";  
$route['404_override'] = '';  

启用mod_rewrite
https://mydomain.com/mvc给出了一个404 https://mydomain.com/mvc/login给出了一个404 我错过了什么?

4 个答案:

答案 0 :(得分:1)

你主持的是什么?如果是hostgator,则需要添加您的用户。

试试这个

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

如果您的托管是hostgator,则需要添加名称用户,例如

RewriteEngine On
RewriteBase /~<name_user>/%{HTTP_HOST} <or> <your folder>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /~<name_user>/%{HTTP_HOST} <or> <your folder>/index.php/$1 [L]

答案 1 :(得分:1)

试试这个 设置子目录的默认基本URL

$ config [&#39; base_url&#39;] =&#34; http://www.example.com/subdir/&#34;

打开config.php并执行以下替换

$config['index_page'] = "index.php"

$config['index_page'] = ""

在某些情况下,uri_protocol的默认设置无法正常运行。所以你只需要替换它

$config['uri_protocol'] ="AUTO"

通过

$config['uri_protocol'] = "REQUEST_URI"

的.htaccess

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

此代码运行所有子目录。希望对你有帮助!。

答案 2 :(得分:0)

试试这个

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

答案 3 :(得分:0)

我遇到了同样的问题,可以通过更新/etc/apache2/sites-enabled/000-default.conf文件来解决

尝试一下。

mvc / .htaccess

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

mvc / application / config / config.php

$config['base_url'] = 'https://yourdomain.com/mvc/';

/etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>

    .... 

    <Directory /your/root/directory> # /var/www/html
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

</VirtualHost>