【发布时间】:2017-09-04 01:25:59
【问题描述】:
这是我第一次将 codeigniter 项目上传到生产环境,我从 Apache 服务器收到错误 404。
错误: 未找到 在此服务器上未找到请求的 URL /index.php。 Apache/2.4.18 (Ubuntu) 服务器位于 roy.my-domain.com 端口 80
每篇文章都看了2天,没找到解决办法....
这是我的设置:
检查 Apache 中的重写模块 - 得到“模块重写已启用” 我的项目在 /var/www/roy/ 所以网址是 roy.my-domain.com/roy
-
Apache2.conf
<Directory /var/www/html/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> AccessFileName .htaccess -
.htaccess
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase /roy/ RewriteRule ^([a-z0-9_-]+)\.html$ index.php/page/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|asset|robots\.txt) RewriteRule ^(.*)$ index.php/$1 [L] </IfModule> -
config.php
$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/roy/'; $config['index_page'] = ''; -
autoload.php(我正在使用 Twig)
$autoload['libraries'] = array('database','session','twig');- 我添加了对日志和缓存目录的权限
-
控制器结构
name Login.php - class Login extends CI_Controller
【问题讨论】:
-
您的开发服务器上的路径结构是否相同?澄清一下,
roy.my-domain.com/roy是可公开访问的 URL 吗? -
w3dk - 是的 - 我确实有相同的路径 - 该项目在开发中运行良好
标签: php apache .htaccess codeigniter mod-rewrite