Кодовый воспламенитель 3 / XAMPP — Удалить index.php с URL-адреса

#php #.htaccess #codeigniter #xampp

Вопрос:

Я прочитал несколько тем с людьми, у которых была похожая проблема, и ни одно из решений, похоже, не работает для меня. Мой сайт размещен по адресу http://localhost/mysite/.

У меня есть сайт codeigniter, и я использую XAMPP.

В любое время, когда я захочу получить доступ к странице, у меня есть index.php в URL-адресе (http://localhost/mysite/index.php/newpage или http://localhost/mysite/index.php/anothernewpage)

Вот мой файл .htaccess

 RewriteEngine on RewriteCond $1 !^(index.php|resources|robots.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L,QSA]  

Вот мой конфигурационный файл

 $config['base_url'] = "http://localhost"; $config['index_page'] = ''; $config['uri_protocol'] = 'REQUEST_URI';  

Вот мои маршруты

 $route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;  

Я также раскомментировал следующую строку в своем файле httpd.conf (XAMPP)

 LoadModule rewrite_module modules/mod_rewrite.so  

Если я попытаюсь получить доступ к области сайта без включения index.php (http://localhost/mysite/newpage)Я получаю сообщение об ошибке 404.Запрошенный URL-адрес не был найден на этом сервере. Я должен указать полный URL-адрес http://localhost/mysite/index.php/newpage. Кто-нибудь может помочь мне понять, что не так с этой настройкой?

Комментарии:

1. пожалуйста, укажите структуру ваших папок

Ответ №1:

Ваш базовый URL-адрес должен быть $config['base_url'] = "http://localhost/mysite";

Ответ №2:

В корне в файле .htaccess (если он не существует, создайте его):

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

в application/config/config.php

 $config['base_url'] = ((isset($_SERVER['HTTPS']) amp;amp; (strtolower($_SERVER['HTTPS']) || $_SERVER['HTTPS']==1)) ? "https" : "http")."://".$_SERVER['HTTP_HOST']."/";  

В локальном хосте (только локальный хост) добавьте имя сайта после «/» в $config[‘base_url’];