Intereting Posts
Сообщения электронной почты распространяются на спам при использовании имени домена в теге Может ли PHP-прокси-скрипт вызывать функции javascript, например щелчок? Остановите скрипт (без фатальной ошибки) после определенного количества времени запроса / разбора проверка mysql для длительных опросов Ошибка WordPress при разработке плагина – «У вас недостаточно прав для доступа к этой странице». PHP: список всех включает отправьте два запроса ajax одновременно в symfony Запрос о перенаправлении поддоменов в Zend Framework Запрос пароля командной строки в PHP Проверьте подключение к базе данных, в противном случае отобразите сообщение Как создать безопасный сценарий загрузки файлов в php? WordPress Admin: при размещении пользовательского типа сообщения в качестве подменю родительского меню ссылка родительского меню переопределяется CPT Если таблица mysql db не содержит строку с определенным идентификатором, добавьте данные в таблицу Запуск тестов PHPUnit в определенном порядке Как разобрать этот XML (XBRL), используя Php

Codeigniter 2 в IIS с файлом web.config

У меня есть приложение codeigniter, работающее нормально с WAMP. Тем не менее, мне не удается заставить его работать на сервере IIS. Обратите внимание, что я не хочу включать строки запроса.

Вот что я имею в моем файле web.config:

<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Clean URL" stopProcessing="true"> <match url="^(.*)$" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" appendQueryString="false" /> </rule> </rules> </rewrite> </system.webServer> </configuration> 

Это приводит к правильной загрузке главной страницы: www.website.com/policies

Однако, когда я нажимаю на элемент, перейдите по адресу: www.website.com/policies/policy/view/31

Правильная страница не отображается. Основная страница продолжает отображаться.

Контроллер – это политика, а функция – view (). Файлы Codeigniter находятся в папке политики / на сервере.

Я думаю, проблема может быть в моем файле web.config. Конфигурационный файл $ config ['base_url'] динамически вычисляется и является правильным. Конфигурационный файл $ config ['index_page'] пуст. Как вы думаете, что вызывает эту проблему?

Спасибо за вашу помощь.

    Вы смотрите на пример на форумах CI?

    http://codeigniter.com/forums/viewthread/91954

     <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Rewrite to index.php"> <match url="index.php|robots.txt|images|test.php" /> <action type="None" /> </rule> <rule name="Rewrite CI Index"> <match url=".*" /> <conditions> <add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:0}" /> </rule> </rules> </rewrite> </system.webServer> </configuration> 

    Оказывается, у меня не было Rewrite. Это сделало трюк:

    http://www.iis.net/downloads/microsoft/url-rewrite

    Я не уверен, что страница с ошибкой codeigniter, возможно, замаскировала ошибку несколько, потому что я не мог определить, что она не была установлена ​​с экрана ошибки браузера. Также Event Viewer, журналы IIS и журналы PHP не помогли в этой ситуации.

    Уфф !!! Ой! Мой Бог!!!

    Недавно я сделал административную панель управления с CI и продуктовой crud. Он отлично работал с WAMP на моем локальном сервере с красивым URL-адресом и перенаправлением. Я говорил о том, что CI – лучшая структура, которую я когда-либо работал. Он настолько прост в использовании и очень хорошо документирован Cheers !! к CodeIgniter.

    Но когда я переместил панель администратора на сервере IIS 7.XX, то, кажется, мой кошмар начинается. Все остановилось. Нет перенаправления. Никакой ошибки не было. Я был так напуган, почему это происходит. Я копаю Google, переполнение стека, форум CI почти 6 часов. Я ничего не получил нигде. Мне было так грустно 🙁

    Я не могу думать, что я должен делать. Затем я сделал себя спокойным и спокойным и начал все заново пересматривать, что здесь:

     1. Set error reporting on 2. Check php info 3. Check redirect/rewrite 4. Check mysql/mysqli extension loaded or not in IIS server 5. Converted my .htaccess file rule with web.config rule (Really helped me) 6. Put web.config file in main directory (CI working folder) not in root folder 

    Как преобразовать .htaccess в web.config?

    Затем я обнаружил, что все правильно, за исключением того, что расширение «mysqli» не было загружено на сервере IIS, и мои учетные данные конфигурации базы данных были неправильными. Затем я внес изменения в php.ini (проверьте «phpinfo ()», чтобы найти строку php.ini на сервере IIS), строка 881 с расширением uncomment = php_mysqli.dll.

    Вот мои настройки конфигурации CI:

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

    После этого снова откройте мою панель администратора CI !!!!!! Все ничего себе! Вау!! работая как шарм 🙂 он он он …. Я был так счастлив 🙂 🙂

    Вот мой файл web.config

     <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Imported Rule 1"> <match url="(.*)" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTPS}" pattern="off" ignoreCase="false" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{URL}" redirectType="Found" /> </rule> <rule name="Imported Rule 1-1" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{URL}" pattern="^system.*" ignoreCase="false" /> </conditions> <action type="Rewrite" url="index.php?/{R:1}" appendQueryString="false" /> </rule> <rule name="Imported Rule 2" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{URL}" pattern="^application.*" ignoreCase="false" /> </conditions> <action type="Rewrite" url="/index.php?/{R:1}" appendQueryString="false" /> </rule> <rule name="Imported Rule 3" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php?/{R:1}" appendQueryString="false" /> </rule> </rules> </rewrite> </system.webServer> </configuration> 

    Вот мой довольно URL-адрес

     https://mysite.abc.com/administrator/admin/showUsers administrator is my admin folder admin is my controller and showUsers in my controller method 

    Надеюсь, мой плохой опыт поможет кому-то 🙂

    Я установил в корневом каталоге следующий код web.config, и он отлично работал.

     <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Imported Rule 1" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{URL}" pattern="^system.*" ignoreCase="false" /> </conditions> <action type="Rewrite" url="/index.php?{R:1}" /> </rule> <rule name="Imported Rule 2" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> <add input="{R:1}" pattern="^(index\.php|images|robots\.txt|css)" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php?{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration> 
     You can like this, <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Imported Rule 1" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> </conditions> <action type="Rewrite" url="index.php?url={R:1}" appendQueryString="true" /> </rule> </rules> </rewrite> </system.webServer> </configuration>