Codeigniter Удалить index.php из URL-адреса браузера

Я хочу создать URL-адрес приложения 'http://example.com. Но при вводе URL-адреса отображается «Ошибка HTTP 403.14 - Запрещено». когда я вставил 'index.php' в последний URL-адрес, например 'http://example.com/index.php' целевая страница отображается в браузере. Я изменил

$config['base_url'] = 'http://example.com';

$config['index_page'] = '';

и

$config['uri_protocol'] = 'REQUEST_URI';

в файле config.php. Затем я поместил файл .htaccess в корневую папку codeigniter вместе с приложением и системной папкой. Затем в файле .htaccess я закодировал с помощью

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>

Я просто хочу удалить index.php из URL-адреса. Я использую веб-сервер IIS 8.5.


person anand    schedule 29.01.2016    source источник
comment
К сожалению, я не могу дать вам точный ответ из-за отсутствия опыта работы с IIS. Но здесь есть несколько ответов. И второй ответ сработал для меня. stackoverflow.com/questions/1445385/ Еще одна вещь, которую вы можете попробовать, это еще немного отредактировать .htaccess RewriteEngine на RewriteBase / RewriteRule ^(application|system|\.svn) index.php/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [QSA,L]   -  person Martin    schedule 29.01.2016
comment
Я уже так, но не работал. Работают ли apache и iis одинаково   -  person anand    schedule 29.01.2016
comment
Кажется, нет: stackoverflow.com/questions/25439087/ Тогда попробуйте это. На самом деле кажется, что вам также понадобится модуль перезаписи URL, и спецификация (conf) будет отличаться от apache.   -  person Martin    schedule 29.01.2016
comment
Какую версию CI вы используете?   -  person Mr. ED    schedule 29.01.2016
comment
Я отредактировал .htaccess с помощью вашего кода RewriteEngine на RewriteBase / RewriteRule ^(application|system|\.svn) index.php/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^( .*)$ index.php/$1 [QSA,L] и o/p — это одна и та же ошибка HTTP 403.14 — запрещено   -  person anand    schedule 29.01.2016
comment
Моя версия codeigniter - последняя версия 3.0.4 и версия iis - 8.5   -  person anand    schedule 29.01.2016
comment
У меня есть немного htaccess, вы можете попробовать github.com/riwakawebsitedesigns/htaccess_for_codeigniter, убедитесь, что в главном каталоге ваш htaccess файл.   -  person Mr. ED    schedule 29.01.2016
comment
замените ниже строку RewriteRule .* index.php/$0 [PT,L] и проверьте ее   -  person msvairam    schedule 29.01.2016
comment
IIS не использует taccess, так что для него это бесполезно. Эти ресурсы помогут вам: stackoverflow.com/questions/9965124/ stackoverflow.com/questions/25439087/   -  person Martin    schedule 29.01.2016
comment
Вы также можете проверить этот сообщение   -  person Skaranjit    schedule 29.01.2016
comment
если я использую веб-сервер apache, ваш (Skaranjit) пост будет полезен, но я использую iis   -  person anand    schedule 29.01.2016
comment
htaccess RewriteEngine on RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] мой сайт работает demo.crowdfundingscript.com файл конфигурации $config['uri_protocol'] = ' АВТО'; $config['index_page'] = '';   -  person Rockers Technology    schedule 29.01.2016
comment
Нужно ли что-то менять в index.php в корневой папке?   -  person anand    schedule 29.01.2016
comment
Я приближаюсь к той же проблеме... Используя Code Igniter 3.1.7 с IIS 8.0 :(, я пробовал разные настраиваемые правила, предоставленные из htaccess yall и импортированные в веб-конфигурацию с использованием URL Write, но все еще не работает. Буду признателен за любую помощь   -  person Dip    schedule 13.03.2018


Ответы (3)


Замените эту строку: -

$config['uri_protocol'] = 'REQUEST_URI';
to
$config['uri_protocol'] = 'AUTO';

также измените свой базовый URL, как показано ниже.

$config['base_url']    = 'http://'.$_SERVER['HTTP_HOST'].'/';

Напишите свои правила, как показано ниже:

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

Надеюсь, это сработает для вас :)

person Ravi    schedule 29.01.2016
comment
Это также привело к тому же. - person anand; 29.01.2016
comment
зачем менять $config['uri_protocol'] = 'REQUEST_URI'; to $config['uri_protocol'] = 'AUTO'; - person anand; 29.01.2016

В config.php,

удалить index.php в $config['index_page']

Например:

$config['index_page'] = '';

person teshvenk    schedule 29.01.2016

person    schedule
comment
Все равно показывает ту же ошибку. Нужно ли изменить файл index.php в корне - person anand; 29.01.2016