У меня возникают проблемы с удалением 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
Спасибо.
Извиняюсь, если это было задано раньше – я посмотрел и попробовал то, что мог видеть.
Редактировать:
Я также должен добавить, что я изменил папки по умолчанию,
заявление
ДИ-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
После выполнения всех инструкций от других людей и из этого документа URL-адреса CodeIgnitor , не забудьте перезапустить сервер . Я просто забыл сделать это и продолжал пробовать все другие решения.
Я был на этом в течение 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
Надеюсь, это поможет, Марио
Вам просто нужно добавить код ниже в .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
я надеюсь, что это сработает для вас