Ответ 1
Попробуйте опубликовать первый блок кода, но вместо /index.php попробуйте использовать /(site)/index.php(obv replace (site) с именем вашей папки сайта).
У меня возникли проблемы с удалением index.php из моих URL-адресов в Codeigniter. Я сделал несколько сайтов с Codeigniter 1.7, а код .htaccess, который я использовал, не работает в 2.
Я пробовал использовать
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
и
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$ ./index.php/$1 [L]
</IfModule>
Я также пробовал это без RewriteBase/in.
Я изменил $config ['uri_protocol'] на REQUEST_URI и QUERY_STRING и ничего.
Я установил $config ['index_page'] = "";
Структура файла - 192.168.0.130/(site)/, поэтому он должен возвращаться к корню сервера и не может найти файл index.php.
Все контроллеры, которые я создал, можно получить, поставив 192.168.0.130/(site)/index.php/testcontroller
Спасибо.
Извините, если это было задано раньше - я посмотрел и попробовал, что я мог видеть.
Edit:
Я также должен добавить, что я изменил папки по умолчанию
Приложение
CI-2,0
index.php
и изменили пути в index.php, чтобы быть правильными.
Попробуйте опубликовать первый блок кода, но вместо /index.php попробуйте использовать /(site)/index.php(obv replace (site) с именем вашей папки сайта).
Это сработало для меня:
Это мой файл htaccess:
Options -Indexes
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
#When your application folder isn't in the system folder
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin
ErrorDocument 404 /index.php
Источник:
http://taggedzi.com/articles/display/codeigniter-2-htaccess-and-friendly-urls
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Это требуется только в корневой папке, добавьте это в .htaccess
После выполнения всех инструкций от других людей и из CodeIgnitor URL documnetation не забывайте перезапустить сервер. Я просто забыл сделать это и продолжал пробовать все другие решения.
Я был на этом в течение 2 дней.. Пробовал все возможное. Я только что сказал, что вам нужно следующее:
ТИП:
sudo nano /etc/apache2/sites-available/default
И измените AllowOverride None на AllowOverride All - Это даст вам доступ к вашим файлам .htaccess
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
# Uncomment this directive is you want to see apache2's
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/
</Directory>
А также включите функцию mod rewrite на Apache:
http://stackoverflow.com/questions/3131236/how-do-you-enable-mod-rewrite
Надеюсь, это поможет, Mário
Вам просто нужно добавить код ниже в .htacess.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
1) Создайте файл .htaccess в корневой папке
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
2) Отредактируйте файл приложения /config/config.php в папке приложения
$config['base_url'] = 'http://localhost/projectName';
$config['index_page'] = ''; // remove index.php
Надеюсь, что это сработает для вас.