AllowOverride不工作 - CodeIgniter

时间:2014-12-31 22:28:45

标签: php apache .htaccess codeigniter

我试图弄清楚为什么我的.htaccess文件无效 - 我假设我以某种方式错误地配置我的000-default.conf。

000-default.conf

<VirtualHost *:80>
        ServerName ****.********.me
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>

        <Directory /var/www/html>
                Options Indexes FollowSymLinks
                AllowOverride All
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

的.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|css|img|js|libs|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

/ html是我的CodeIgniter项目中/ www的符号链接。我从$ config ['index_page']中删除了'index.php',并且网站的首页加载没有任何问题。当我尝试访问网站上的任何其他页面时出现问题(除非我将index.php添加到每个页面的开头,否则它们不会加载)。我也跑了sudo a2enmod重写,无济于事。在我解决问题的所有尝试中,我还重新启动了apache2服务。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您只想删除index.php,请按以下步骤操作:

1- set $config['uri_protocol'] = 'REQUEST_URI'; $config['index_page'] = '';

2- .htaccess文件:

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

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]