我已多次在根目录中成功安装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
我错过了什么?
答案 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
文件来解决
尝试一下。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
$config['base_url'] = 'https://yourdomain.com/mvc/';
<VirtualHost *:80>
....
<Directory /your/root/directory> # /var/www/html
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>