Как удалить index.php из codeigniter в UBUNTU
Я знаю, что этот вопрос уже задан, я пробовал все, но все еще не смог удалить index.php из url.
Вот мои подробности
Ubuntu 12.10
PHP : 5.4.6
Mod_rewrite in on
CI verson: 2.1
.htacess выглядят так:
RewriteEngine On
RewriteBase /projectname
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Я также смотрю ссылку ниже, но не повезло..
Невозможно удалить index.php с сайта на основе CI на основе URL
Как удалить "index.php" в пути codeigniter
Мой "/etc/apache2/sites-available/default" выглядит следующим образом:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Любая помощь приветствуется!!
Ответы
Ответ 1
В application/config/config.php
изменить:
$config['index_page'] = 'index.php';
в
$config['index_page'] = '';
рекомендуется обновлять apache каждый раз при изменении конфигурационного файла apache.
sudo /etc/init.d/apache2 reload
или
sudo service apache2 reload
или
sudo /etc/init.d/httpd reload
(или что-то еще эквивалентная команда для вашей платформы)
для чего это стоит, вот мой .htaccess
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|static|robots\.txt|favicon\.ico|uploads|googlexxxxxxxx\.html|mobile.html)
RewriteRule ^(.*)$ index.php/$1 [L]
Ответ 2
Шаг 1:
Добавьте это в файл htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>
Шаг 2:
Удалить index.php в configignign config
$config['base_url'] = '';
$config['index_page'] = '';
Шаг 3:
Разрешить переопределение htaccess в конфигурации Apache (команда)
sudo nano /etc/apache2/apache2.conf
и отредактируйте файл и измените его на
AllowOverride All
для папки www
Шаг 4:
Включено переписывание модема apache (команда)
sudo a2enmod rewrite
Шаг 5:
Перезапустить Apache (Command)
sudo /etc/init.d/apache2 restart
Ответ 3
my.htaccess
RewriteEngine on
RewriteCond $1 !^(index.php)
RewriteRule ^(.*)$ index.php/$1 [L]