我试图弄清楚为什么我的.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服务。有什么想法吗?
答案 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]